2017-01-27 36 views
6

Mam duży pyspark.sql.dataframe.DataFrame i chcę zachować (tak filter) wszystkie wiersze, w których adres URL zapisany w kolumnie location zawiera wstępnie określony ciąg znaków, np. "google.com".Filtruj df, gdy wartości pasują do fragmentu ciągu znaków w pyspark

Próbowałem df.filter(sf.col('location').contains('google.com') ale to rzuca

TypeError: _TypeError: 'Column' object is not callable' 

Jak mogę obejść i filtrować moje df prawidłowo? Z góry bardzo dziękuję!

+1

Spróbuj 'df.filter ("położenie jak '% google.com%'") ' – mrsrinivas

Odpowiedz

12

Można użyć zwykły SQL w filter

df.filter("location like '%google.com%'") 

lub metodami kolumn DataFrame

df.filter(df.location.like('%google.com%')) 
+1

Awesome, to działa, naprawdę, dzięki! Czy możesz wyjaśnić, dlaczego metoda, którą wypróbowałem wcześniej, nie działa? – gaatjeniksaan

+1

Nie widzę żadnej metody 'zawiera()' [dla pySpark] (http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html). Ale zawiera powinno działać. – mrsrinivas