相关疑难解决方法(0)

如何在spark(scala)中将WrappedArray [WrappedArray [Float]]转换为Array [Array [Float]]

我使用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)

任何想法都将受到高度赞赏.谢谢

arrays casting scala spark-dataframe apache-spark-2.0

6
推荐指数
1
解决办法
9719
查看次数

如何在WrappedArray中获取一个元素:Dataset.select("x")的结果.colle()?

我是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)

scala apache-spark

2
推荐指数
1
解决办法
5017
查看次数