如何在 Spark 中将数据帧或 RDD[对象] 转换为数组 [对象]



我目前正在为我当前的项目使用 spark streamingspark 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以进行下一次执行?

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)
}
我想

我可以把它解析为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.

相关内容

  • 没有找到相关文章

最新更新