我目前正在使用spark streaming
和spark sql
作为我当前的项目。有没有办法将Array[Object]
转换为RDD[object]
或DataFrame
?我正在做如下的事情:
val myData = myDf.distinct()
.collect()
.map{ row =>
new myObject(row.getAs[String]("id"), row.getAs[String]("name"))
}
上面代码段中的myData将为Array[myObject]
。如何将其发送到RDD[myObject]
或直接发送到DataFrame
以便下次执行?
答案 0 :(得分:2)
import org.apache.spark.sql.Row
case class myObject(id:String, name:String)
val myData = myDf.distinct.map {
case Row(id:String, name:String) => myObject(id,name)
}
答案 1 :(得分:1)
我想我会把它解析为RDD [myObject]。我希望这是正确的方法。
val myData = myDf.distinct()
.collect()
.map{ row =>
new myObject(row.getAs[String]("id"), row.getAs[String]("name"))
}
val myDataRDD = rdd.SparkContext.parallelize(myData) // since this code snippet is inside a foreachRDD clause.