使用Sparklyr进行计数模式匹配
我一直在尝试使用Sparkyr计算模式匹配 我试图数一数这个模式的时间;显示在可变房间号中 这是我的桌子:使用Sparklyr进行计数模式匹配,r,apache-spark,sparklyr,R,Apache Spark,Sparklyr,我一直在尝试使用Sparkyr计算模式匹配 我试图数一数这个模式的时间;显示在可变房间号中 这是我的桌子: room_number A12;A19 A13 A15;A14;A20 当我不使用Sparkyr时,我可以使用此功能: count.matches <- function(pat, vec) sapply(regmatches(vec, gregexpr(pat, vec)), length) mytable <- my
room_number
A12;A19
A13
A15;A14;A20
当我不使用Sparkyr时,我可以使用此功能:
count.matches <- function(pat, vec) sapply(regmatches(vec, gregexpr(pat, vec)), length)
mytable <- mytable %>%
mutate(number_pattern = mapply(count.matches, c(';'), list(room_number)))
如果我尝试在distributed R中使用SparkyR使用spark_apply而不是mapply应用代码,我会得到以下消息:
mytable <- mytable %>%
+ mutate(number_pattern = spark_apply(count.matches, c(';'), list(room_number)))
glimpse(mytable)
UseMethodescape中出错:
没有适用于类函数对象的“escape”方法
你有什么建议吗?
感谢您的帮助spark_apply是一个独立的函数,不能在mutate中使用。此外,它没有与mapply相同的API:
mytable <- mytable %>%
+ mutate(number_pattern = spark_apply(count.matches, c(';'), list(room_number)))
glimpse(mytable)
count.matches <- function(pat) function(df) {
f <- function(vec) sapply(regmatches(vec, gregexpr(pat, vec)), length)
dplyr::mutate(df, number_pattern = f(room_number))
}
mytable %>% spark_apply(count.matches(";"))