如何使用 sparklyr 过滤部分匹配项
How to filter on partial match using sparklyr
我是 sparklyr 的新手(但熟悉 spark 和 pyspark),我有一个非常基本的问题。我正在尝试根据部分匹配过滤列。在 dplyr 中,我会这样写我的操作:
businesses %>%
filter(grepl('test', biz_name)) %>%
head
运行 spark 数据帧上的代码却给了我:
Error: org.apache.spark.sql.AnalysisException: Undefined function: 'GREPL'. This function is neither a registered temporary function nor a permanent function registered in the database 'project_eftpos_failure'.; line 5 pos 7
与标准 Spark 相同,您可以使用 rlike
(Java 正则表达式):
df <- copy_to(sc, iris)
df %>% filter(rlike(Species, "osa"))
# or anchored
df %>% filter(rlike(Species, "^.*osa.*$"))
或like
(简单SQL正则表达式):
df %>% filter(like(Species, "%osa%"))
这两种方法也可以与后缀符号一起使用
df %>% filter(Species %rlike% "^.*osa.*$")
和
df %>% filter(Species %like% "%osa%")
分别
详情见vignette("sql-translation")
。
我是 sparklyr 的新手(但熟悉 spark 和 pyspark),我有一个非常基本的问题。我正在尝试根据部分匹配过滤列。在 dplyr 中,我会这样写我的操作:
businesses %>%
filter(grepl('test', biz_name)) %>%
head
运行 spark 数据帧上的代码却给了我:
Error: org.apache.spark.sql.AnalysisException: Undefined function: 'GREPL'. This function is neither a registered temporary function nor a permanent function registered in the database 'project_eftpos_failure'.; line 5 pos 7
与标准 Spark 相同,您可以使用 rlike
(Java 正则表达式):
df <- copy_to(sc, iris)
df %>% filter(rlike(Species, "osa"))
# or anchored
df %>% filter(rlike(Species, "^.*osa.*$"))
或like
(简单SQL正则表达式):
df %>% filter(like(Species, "%osa%"))
这两种方法也可以与后缀符号一起使用
df %>% filter(Species %rlike% "^.*osa.*$")
和
df %>% filter(Species %like% "%osa%")
分别
详情见vignette("sql-translation")
。