python - 当值与pyspark中字符串的一部分匹配时过滤df

标签 python apache-spark pyspark apache-spark-sql

我有一个很大的 pyspark.sql.dataframe.DataFrame,我想保留(所以 filter)URL 保存在 location< 中的所有行 列包含一个预先确定的字符串,例如'google.com'。

我试过了:

import pyspark.sql.functions as sf
df.filter(sf.col('location').contains('google.com')).show(5)

但这会引发

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

如何正确过滤我的 df?提前谢谢了!

最佳答案

Spark 2.2 以后

df.filter(df.location.contains('google.com'))

Spark 2.2 documentation link


Spark 2.1 及之前的版本

You can use plain SQL in filter

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

or with DataFrame column methods

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

Spark 2.1 documentation link

关于python - 当值与pyspark中字符串的一部分匹配时过滤df,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41889974/

相关文章:

python - 尝试读取 docx 文件时出现 UnicodeDecodeError

java - java - 如何使用Java中的spark将空值替换为Dataframe中的特定值?

apache-spark - Spark作业优化: Is there a way to tune spark job which has too many joins

Python Spark 如何使用 RDD API 按组查找累计和

python - 将 RDD 转换为 DataFrame PySpark 时出现错误

python - 通过匹配 python 中的内部 dicts 属性来展平两个字典列表?

c# - 无法在 python 中使用 X509Certificate 签署数据

python - Django-在HTML中执行Python代码

apache-spark - spark.ml StringIndexer在fit()上抛出 'Unseen label'

python - 在多个 GPU 上运行相同的模型,但向每个 GPU 发送不同的用户数据