2017-09-18 6 views
3

Je suis nouveau à sparklyr (mais familier avec spark et pyspark), et j'ai une question vraiment basique. J'essaye de filtrer une colonne basée sur une correspondance partielle. Dans dplyr, je voudrais écrire mon opération afin:Comment filtrer sur match partiel en utilisant sparklyr

businesses %>% 
    filter(grepl('test', biz_name)) %>% 
    head 

à exécuter ce code sur une trame de données d'étincelle me donne cependant:

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

Répondre

3

La même chose que dans Spark standard, vous pouvez utiliser rlike (Java expressions régulières):

df <- copy_to(sc, iris) 

df %>% filter(rlike(Species, "osa")) 

# or anchored 
df %>% filter(rlike(Species, "^.*osa.*$") 

ou like (expressions régulières simples SQL):

df %>% filter(like(Species, "%osa%")) 
+2

Parfait, si simple: O je suis surpris que je n'ai pas trouvé cela répertorié nulle part ailleurs ou ici: https://spark.rstudio.com/articles/guides-dplyr.html#sql-translation –