大家好,
我麵臨的挑戰而收集火花dataframe R dataframe,這個我需要做我用TraMineR算法實現人類在R和數據預處理在pyspark我做了
我在這個:
events_df < -收集(事件)
events_grp_df < -收集(events_grp)
發生的錯誤與Kyro序列化
“org.apache.spark。SparkException: Kryo序列化失敗:緩衝區溢出。:0,要求:58歲。為了避免這種情況,增加spark.kryoserializer.buffer.max價值”
誰能幫助建議任何備用收集或其他方法來解決這個問題?
通知你:我試圖增加buffer.max。使用spark.conf.set mb (“spark.kryoserializer.buffer.max.mb”、“50000”),但它不工作
謝謝提前
@Niraj Tanwar:
錯誤消息顯示緩衝區溢出,這可能意味著被序列化的數據量超過了Kryo所允許的最大緩衝區大小。除了增加緩衝區大小,你可以試著減少序列化數據的大小從DataFrame隻通過選擇必要的列。而不是使用收集(),你可以試著寫DataFrame文件的格式,可以閱讀R, CSV或拚花等。然後,您可以使用其文件讀取文件到R閱讀功能。
這是一個寫DataFrame CSV文件的例子:
events.write.format (csv)。選項(“頭”,“真正的”).save(路徑“/ / / csv文件”)
這裏是一個例子,一個CSV文件解讀R data.frame:
events_df < - read.csv(“/道路/ / csv文件”)
您可以使用類似的代碼編寫和讀取鋪文件。寫拚花格式的優點是更有效的比CSV和緊湊的文件格式。
我希望這可以幫助!