【发布时间】:2018-09-07 23:32:10
【问题描述】:
我在处理 WrappedArray 列时遇到问题。我想从 Spark 数据集中的 WrappedArray 列中删除/过滤元素。
WrappedArray 包含对象,例如我有一个数据集包含以下列:
ColA
-----
WrappedArray([id:111, type:A],[id:222,type:B])
WrappedArray([id:333, type:A],[id:444,type:C])
WrappedArray([id:555, type:B],[id:666,type:C])
我想用type == A 删除WrappedArray 中的任何元素。所需的输出如下:
ColA
-----
WrappedArray([id:222,type:B])
WrappedArray([id:444,type:C])
WrappedArray([id:555, type:B],[id:666,type:C])
我正在考虑使用UDF 和withColumn,我可以看到WrappedArray API 具有filter 函数,但无法正确使用语法。
使用 Java,但任何语言都可以。任何帮助/建议都会很好!
【问题讨论】:
-
只是阅读它。如果我理解正确,如果位置不固定,该解决方案似乎不起作用?
-
是的,这个问题有点不同。为此,我可能能够使用
UDF为您提供一个 Scala 解决方案,但不太确定它会有多大帮助。您能否将您尝试过的UDF添加到问题中?
标签: apache-spark apache-spark-sql apache-spark-dataset