Array[org.apache.spark.sql.Row]
をDataFrame
に変換したいとします。 誰かが私に良い方法を提案できますか?Spark/Scalaで配列[行]をDataFrameに変換する
最初にRDD
に変換してからDataframe
に変換しようとしましたが、DataFrame
の操作を実行すると例外が表示されます。
val arrayOfRows = myDataFrame.collect().map(t => myfun(t))
val distDataRDD = sc.parallelize(arrayOfRows)
val newDataframe = sqlContext.createDataFrame(distDataRDD,myschema)
myfun()
Row (org.apache.spark.sql.Row)
を返す関数です。 配列の内容が正しいため、問題なく印刷できます。
しかし、私がRDD
のレコードを数えようとしたとき、それは私にカウントと、ステージの1つに非常に大きなサイズのタスクが含まれているという警告を与えました。私は何か間違っていると思います。助けてください。
注文を変更するとこのエラーが発生します。** org.apache.spark .SparkException:タスクがシリアライズできない** – rvp
arrayofRowsは実際にDataFrameタイプであるため、2行目と3行目は必要ありません(sc.parallelizeはRDDを受け取り、DataFramesは受け付けません)。 –
エラーが発生します。私が最初の行に入るとすぐ 'val arrayOfRows = myD ataFrame.collect()。map(t => myfun(t)) ' – rvp