簡體   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