私はSpark/Scalaの初心者です。私はデータセットから選択された配列の値(Double)を抽出したいと思います。簡略化した主要なステップを以下に示します。 最後のwpAで各値[Double]をどのように抽出できますか? val p1 = wpA(1)のようなもの。 wpA.toArrayで通常の配列に変換できませんでした。WrappedArrayで要素を取得する方法:Dataset.select( "x")の結果。collect()?
ご協力いただきありがとうございます。
case class Event(eventId: Int, n_track: Int, px:ArrayBuffer[Double],py: ArrayBuffer[Double], pz: ArrayBuffer[Double],ch: ArrayBuffer[Int], en: ArrayBuffer[Double])
---
val rawRdd = sc.textFile("expdata/rawdata.bel").map(_.split("\n"))
val eventRdd = rawRdd.map(x => buildEvent(x(0).toString))
val dataset = sqlContext.createDataset[Event](eventRdd)
dataset.printSchema()
root
|-- eventId: integer (nullable = false)
|-- n_track: integer (nullable = false)
|-- px: array (nullable = true)
| |-- element: double (containsNull = false)
|-- py: array (nullable = true)
| |-- element: double (containsNull = false)
|-- pz: array (nullable = true)
| |-- element: double (containsNull = false)
|-- ch: array (nullable = true)
| |-- element: integer (containsNull = false)
|-- en: array (nullable = true)
| |-- element: double (containsNull = false)
val dataFrame = dataset.select("px")
val dataRow = dataFrame.collect()
val wpA = dataRow(1)(0)
println(wpA)
WrappedArray(-0.99205, 0.379417, 0.448819,.....)
それは約すべてです[ mutable.WrappedArray [Double]](0)。ありがとうございました:) – elarib
ありがとう@Tzach Zohar。あなたのソリューションは本当に私を助けました –