2016-09-28 56 views

回答

1

我相信它應該看起來像以下:

import org.apache.spark.sql.catalyst.encoders.RowEncoder 
... 
implicit val encoder = RowEncoder(df.schema) 
val newDf = df.mapPartitions(iterator => iterator.take(1)) 

這將花費1元,從數據幀中的每個分區。然後你就可以收集所有數據到驅動程序即:

nedDf.collect() 

這將返回與多家等於你的分區數元素的數組。

UPD爲了更新,以支持星火2.0

+0

我在看的方法在這裏簽名http://spark.apache.org/docs/latest/api/java/org/apache/spark/sql /Dataset.html和奇蹟你不需要編碼器作爲此方法調用中的第二個參數? – MaxNevermind

+0

嘗試此解決方案將返回「無法找到存儲在數據集中的類型的編碼器。即使使用spar.implicits,原始類型(Int,String等)和產品類型錯誤仍然存​​在 – syl

+0

用foreachPartition替換mapPartition但它返回一個空的列表() – syl

相關問題