2017-09-18 3 views
3

Ich bin neu zu sparklyr (aber vertraut mit Funken und pyspark), und ich habe eine wirklich grundlegende Frage bekommt. Ich versuche, eine Spalte basierend auf einer teilweisen Übereinstimmung zu filtern. In dplyr, würde ich meinen Betrieb als so schreiben:Wie auf teilweise Übereinstimmung filtern sparklyr mit

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

diesen Code auf einem Funkendatenrahmen Laufen jedoch gibt mir:

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

Antwort

3

Das gleiche wie in Standard-Spark, können Sie entweder rlike verwenden (Java reguläre Ausdrücke):

df <- copy_to(sc, iris) 

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

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

oder like (einfache SQL reguläre Ausdrücke):

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

Perfect, so einfach: O, ich bin überrascht, dass ich nicht, dass irgendwo anders aufgelistet haben oder hier: https://spark.rstudio.com/articles/guides-dplyr.html#sql-translation –

Verwandte Themen