2017-01-27 8 views
4

Im Spark 2.0を使用しています。 私のデータフレームの列には、FloatのWrappedArraysのWrappedArrayが含まれています。Spra(scala)の配列[Array [Float]]にWrappedArray [WrappedArray [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 

任意のアイデアが高く評価されるだろう。おかげ

答えて

2

はこれを試してみてください:

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

それは、@サミ・バダウィさんの答えは、私がデータフレームから始まっ人私のような人のための答えを掲示しています後、私

+0

ありがとうございました。あなたの答えは私を最終的な解決に導いてくれました。私はデータフレームで始まった私のような人のための正確なコードで自分の答えを更新します。 – bobo32

+0

Stackoverflowの私の最初の質問は3つの答えを得たそれらのどれも働いたが、私は解決策を見つけたそれらを梳くことによって。 :D –

1

のためにコンパイルされます。

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

以下の値を出力しようとしました: rdd.map(row => row.get(0).asInstanceOf [WrappedArray [WrappedArray [String]]]。toSeq.map(x => x.toSeq .foreach(println))) – Burt

関連する問題