Как удалить/отфильтровать элемент из столбца WrappedArray

У меня возникла проблема с управлением столбцом WrappedArray. Я хочу удалить/отфильтровать элемент из столбца WrappedArray в наборе данных Spark. 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, но подойдет любой язык. Любая помощь/предложение будет приятно!


person Alex    schedule 29.03.2018    source источник
comment
Вы проверяли это? stackoverflow.com/questions/48195507/   -  person Vinod Chandak    schedule 29.03.2018
comment
Просто прочитайте это. Кажется, это решение не сработает, если положение не зафиксировано, если я правильно понимаю?   -  person Alex    schedule 29.03.2018
comment
Да, это немного другой вопрос. Для этого я, вероятно, смогу дать вам решение Scala с использованием UDF, но не уверен, насколько оно будет полезным. Не могли бы вы добавить к вопросу UDF, который вы пробовали?   -  person Shaido    schedule 29.03.2018


Ответы (1)


Решено с помощью разнесения. Основная идея состоит в том, чтобы взорваться до уровня элемента и отфильтровать, где colA.type=A

person Alex    schedule 29.03.2018