У меня есть RDD с формой long, int, string, Array[Double]
, которую мне нужно преобразовать в DataFrame. Преобразование myRDD.toDF()
работает нормально, но моя проблема в том, что функция Array [Double] конвертируется в WrappedArray [Double]. Результирующая схема:
root
|-- _1: long (nullable = false)
|-- _2: integer (nullable = false)
|-- _3: string (nullable = true)
|-- _4: array (nullable = true)
| |-- element: double (containsNull = false)
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу применять операции к столбцу _4
, как если бы это был массив значений, которые я могу выполнять на СДР. Столбцы WrappedArray
, кажется, обрабатываются как строка, начинающаяся с WrappedArray(10.0, 33.4, 1.2, ...)
. На RDD я могу применять карты к этим элементам, но не к столбцу DataFrame. Как правильно преобразовать элемент Array[Double]
из RDD в столбец DataFrame, чтобы значения обрабатывались как последовательность чисел, а не строка "WrappedArray(....)"