我使用Spark 2.0.我的数据WrappedArray框列中包含一个Florap的WrappedArrays.
一行的示例是:
[[1.0 2.0 2.0][6.0 5.0 2.0][4.0 2.0 3.0]]
Run Code Online (Sandbox Code Playgroud)
我试图将这个专栏改造成一个Array[Array[Float]].
到目前为止我尝试的是以下内容:
dataframe.select("mycolumn").rdd.map(r => r.asInstanceOf[Array[Array[Float]]])
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
Caused by: java.lang.ClassCastException:
org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema cannot be cast to [[F
Run Code Online (Sandbox Code Playgroud)
任何想法都将受到高度赞赏.谢谢
我是Spark/Scala的初学者.我想从数据集中选择的数组中提取一个值(Double).简化的主要步骤如下所示.如何在最后一个val wpA中提取每个值[Double]?像val p1 = wpA(1)之类的东西.我没能通过wpA.toArray将它转换为普通数组.
预先感谢您的帮助.
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) …Run Code Online (Sandbox Code Playgroud)