【发布时间】:2016-02-13 18:08:14
【问题描述】:
我正在尝试创建一个简单的DataFrame,如下所示:
import sqlContext.implicits._
val lookup = Array("one", "two", "three", "four", "five")
val theRow = Array("1",Array(1,2,3), Array(0.1,0.4,0.5))
val theRdd = sc.makeRDD(theRow)
case class X(id: String, indices: Array[Integer], weights: Array[Float] )
val df = theRdd.map{
case Array(s0,s1,s2) => X(s0.asInstanceOf[String],s1.asInstanceOf[Array[Integer]],s2.asInstanceOf[Array[Float]])
}.toDF()
df.show()
df 定义为
df: org.apache.spark.sql.DataFrame = [id: string, indices: array<int>, weights: array<float>]
这就是我想要的。
执行后,我得到
org.apache.spark.SparkException:作业因阶段失败而中止:阶段 13.0 中的任务 1 失败 1 次,最近一次失败:阶段 13.0 中丢失任务 1.0(TID 50,本地主机):scala.MatchError:1(类 java.lang.String)
这个 MatchError 来自哪里?而且,有没有更简单的方法来以编程方式创建示例DataFrames?
【问题讨论】:
标签: scala spark-dataframe