大きなpyspark.sql.dataframe.DataFrame
があり、filter
列に保存されたURLに事前に決定された文字列が含まれるすべての行を保持します(したがってlocation
)。 'Google COM'。
df.filter(sf.col('location').contains('google.com')
を試しましたが、これは
TypeError: _TypeError: 'Column' object is not callable'
どうやってdfを適切にフィルタリングしますか?事前に感謝します!
filter
でplain SQLを使用できます。
df.filter("location like '%google.com%'")
またはDataFrame列メソッドを使用
df.filter(df.location.like('%google.com%'))
pyspark.sql.Column.contains()
は、pysparkバージョン2.2以降でのみ使用可能です。
df.where(df.location.contains('google.com'))
文字列値でDataFrameをフィルタリングするとき、データに "foo"や "Foo"のような列エントリがある場合、pyspark.sql.functions
lower
とupper
が便利であることがわかります。
import pyspark.sql.functions as sql_fun
result = source_df.filter(sql_fun.lower(source_df.col_name).contains("foo"))