繁体   English   中英

在Spark / Scala中将Array [Row]转换为DataFrame

[英]Convert Array[Row] to DataFrame in Spark/Scala

我想将Array[org.apache.spark.sql.Row]转换为DataFrame 有谁能建议我一个更好的方法?

我尝试先将其转换为RDD ,然后尝试将其转换为Dataframe ,但是当我对DataFrame执行任何操作时, DataFrame显示异常。

val arrayOfRows = myDataFrame.collect().map(t => myfun(t))
val distDataRDD = sc.parallelize(arrayOfRows)
val newDataframe = sqlContext.createDataFrame(distDataRDD,myschema)

这里myfun()是一个返回Row (org.apache.spark.sql.Row)的函数。 数组中的内容是正确的,我可以毫无问题地打印它。

但是当我试图计算RDD的记录时,它给了我计数以及一个警告,其中一个阶段包含一个非常大的任务。我想我做错了什么。 请帮忙。

你在第一行有一个错误。 collect返回一个Array,而map是一个在DataFrames / RDD上运行的方法。

尝试val arrayOfRows = myDataFrame.map(t => myfun(t)).collect()代替。

case class PgRnk (userId : Long , pageRank: Double ) 
// create a case class 

sc.parallelize(pg10.map(r1 => PgRnk(r1.getLong(0), r1.getDouble(1)))).toDS() 
// convert into a dataset, sc.parallelize converts the array into a RDD, and then to DS 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM