Code Monkey home page Code Monkey logo

Comments (2)

wkumler avatar wkumler commented on September 27, 2024

See https://stackoverflow.com/q/77204216 for implementation advice, timings below

library(arrow)
artab <- arrow_table(int=1:1000000, value=runif(1000000))

library(dplyr)
library(data.table) # for %between% operator syntax

req_vals <- data.frame(lower_bound=runif(200)) %>%
  mutate(upper_bound=lower_bound+0.0002)

eval_method <- function(){
  window_req_string <- req_vals %>%
    summarise(req_cmd=paste0("value%between%c(", lower_bound, ", ", upper_bound, 
                             ")", collapse="|")) %>%
    pull(req_cmd)
  full_arrow_req <- paste0(
    'artab %>% filter(', window_req_string, ') %>% dplyr::collect()'
  )
  eval(parse(text=full_arrow_req)) %>%
    arrange(int)
}

lapply_method <- function(){
  req_list <- split(req_vals, seq_len(nrow(req_vals))) %>%
    lapply(unlist)
  lapply(req_list, function(window) {
    artab %>%   
      filter(value%between%window) %>%   
      collect()
  }) %>% 
    bind_rows() %>%
    distinct() %>%
    arrange(int)
}

identical(arrow_output_eval, arrow_output_lapply)
microbenchmark::microbenchmark(eval_method(), lapply_method(), times = 3, check = "identical")

from rams.

wkumler avatar wkumler commented on September 27, 2024

See the new vignette introduced in #24 for timing and implementation of arrow and its comparison to other packages.

from rams.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.