如何过滤 PySpark 中数组列中的值?
Posted
技术标签:
【中文标题】如何过滤 PySpark 中数组列中的值?【英文标题】:How to filter values in an array column in PySpark? 【发布时间】:2020-11-11 17:02:36 【问题描述】:我在 Pyspark 中有一个 ArrayType 列。我只想过滤每一行的数组中的值(我不想过滤掉实际的行!)而不使用 UDF。
例如,给定这个数据集的 A 列是 ArrayType:
| A |
______________
|[-2, 1, 7] |
|[1] |
|[-4, -1, -3]|
而且我希望输出只有正值:
| A |
______________
|[1, 7] |
|[1] |
|[] |
【问题讨论】:
【参考方案1】:对于 Spark 2.4 及更高版本,
from pyspark.sql.functions import expr
df.withColumn("A", expr("filter(A, x -> x > 0)")).show()
【讨论】:
以上是关于如何过滤 PySpark 中数组列中的值?的主要内容,如果未能解决你的问题,请参考以下文章