1
我是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。你的解決方案對我也很有幫助 –