我遇到了操纵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])
我想删除WrappedArray
中type == A
内的所有元素。所需的输出如下:
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,但任何语言都可以。任何帮助/建议都会很好!
答案 0 :(得分:0)
使用爆炸解决, 基本思想是爆炸到元素级别,并过滤掉colA.type = A
的位置