it-swarm.com.ru

Как привести WrappedArray [WrappedArray [Float]] к Array [Array [Float]] в искре (scala)

Я использую Spark 2.0 . У меня есть столбец моего dataframe, содержащий WrappedArray из WrappedArrays из Float.

Пример строки будет:

[[1.0 2.0 2.0][6.0 5.0 2.0][4.0 2.0 3.0]]

Я пытаюсь преобразовать этот столбец вArray[Array[Float]].

То, что я пробовал до сих пор, это следующее:

dataframe.select("mycolumn").rdd.map(r => r.asInstanceOf[Array[Array[Float]]])

но я получаю следующую ошибку:

Caused by: Java.lang.ClassCastException:
 org.Apache.spark.sql.catalyst.expressions.GenericRowWithSchema cannot be cast to [[F

Любая идея будет высоко оценена. Спасибо

5
bobo32

Попробуй это:

  val wawa: WrappedArray[WrappedArray[Float]] = null 
  val res: Array[Array[Float]] = wawa.map(inner => inner.array).toArray

Это компилирует для меня

3
Sami Badawi

После ответа @ sami-badawi я публикую ответ для тех, кто, как и я, начал с данных.

dataframe.select("mycolumn").rdd.map
(row => row.get(0).asInstanceOf[WrappedArray[WrappedArray[Float]]].array.map(x=>x.toArray))
2
bobo32