gaa*_*aan 32 python apache-spark apache-spark-sql pyspark
我有一个很大的pyspark.sql.dataframe.DataFrame,我想保留(所以filter)列中保存的URL location包含预定字符串的所有行,例如'google.com'.
我试过了,df.filter(sf.col('location').contains('google.com')
但这会抛出一个
TypeError: _TypeError: 'Column' object is not callable'
Run Code Online (Sandbox Code Playgroud)
我该如何绕过并正确过滤我的df?提前谢谢了!
mrs*_*vas 61
您可以使用普通的SQL中filter
df.filter(df.location.contains('%google.com%'))
Run Code Online (Sandbox Code Playgroud)
或使用DataFrame列方法
df.filter("location like '%google.com%'")
Run Code Online (Sandbox Code Playgroud)
Joa*_*ins 13
我必须和你做同样的工作并且pyspark.sql.Column.contains()工作:
df.where(df.location.contains('google.com'))
Run Code Online (Sandbox Code Playgroud)
也许他们已经纠正过了.
当使用字符串值过滤 DataFrame 时,我发现pyspark.sql.functions lower和upper派上用场,如果您的数据可以有像“foo”和“Foo”这样的列条目:
import pyspark.sql.functions as sql_fun
result = source_df.filter(sql_fun.lower(source_df.col_name).contains("foo"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53241 次 |
| 最近记录: |