у меня есть DataFrame myDf
, который содержит множество пар точек (т.е. координаты х и у), имеет следующую схему:Извлечение столбцов в гнездовой Спарк DataFrame как SCALA Массивы
myDf.printSchema
root
|-- pts: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- x: float (nullable = true)
| | |-- y: float (nullable = true)
Я хочу, чтобы получить x
и y
как отдельная равнина Скала Array
. Я думаю, мне нужно применить функцию explode, но я не могу понять, как это сделать. Я попытался применить решение this, но я не могу заставить его работать.
Я использую Спарк 1.6.1 с Scala 2,10
EDIT: Я понимаю, что у меня было недопонимание, как искровые работы, получение фактических массивов возможно только, если собраны данные (или с помощью UDF)
Спасибо и допрашивающему, и ответчику. Вы, ребята, сделали свой день. Я снимал с себя волосы при использовании искрового xml и вашего решения камней ;-) –
Рад это слышать, thx dude –