【问题标题】:Filtering array values using pyspark使用 pyspark 过滤数组值
【发布时间】:2021-03-27 20:22:29
【问题描述】:

我是 pyspark 新手,需要以下问题的解决方案。

在数组 [[-1,1,2,4,5],[3,5,6,-6]] 中,删除

【问题讨论】:

  • 火花版??
  • spark 版本 3 和使用 python 3

标签: apache-spark pyspark apache-spark-sql rdd


【解决方案1】:

使用transform & filter 高阶函数。

df.printSchema()
root
 |-- ids: array (nullable = true)
 |    |-- element: array (containsNull = true)
 |    |    |-- element: integer (containsNull = false)

from pyspark.sql import functions as F

df.withColumn("new_ids",F.expr("transform(ids,o -> filter(o, i  -> i > 0))")).show()
+---------------------------------+-------------------------+
|ids                              |new_ids                  |
+---------------------------------+-------------------------+
|[[-1, 1, 2, 4, 5], [3, 5, 6, -6]]|[[1, 2, 4, 5], [3, 5, 6]]|
+---------------------------------+-------------------------+

【讨论】:

  • 任何其他使用 rdd 映射和过滤器的简单解决方案?
  • 这是一个非常简单的解决方案
猜你喜欢
  • 1970-01-01
  • 2016-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 2018-05-26
相关资源
最近更新 更多