[英]Can Spark with External Shuffle Service use saved shuffle files in the event of executor failure?
[英]How to Use Spark to Shuffle big files?
我有一個20G的文本文件,我想改組其行。 由於本地內存的限制,我想立即執行此操作。 有人可以告訴我該怎么做嗎?
PS我考慮過使用密鑰對(random.random(), line)
,因此spark在保存文件時將按random.random()
排序。 我不知道這行得通。
假設使用Python,並假設您的文本文件RDD稱為lines
,請嘗試以下操作:
shuffled_RDD = lines.map(lambda line: (random.random(), line)).sortByKey.map(lambda line: line[1:])
這未經測試,但是邏輯應該起作用。
一個簡單的解決方案是將文件讀取為數據框,然后使用orderBy
;
import org.apache.spark.sql.functions.rand
val shuffledDF = df.orderBy(rand())
這將隨機化數據幀行的順序。 之后,只需再次另存為文本文件即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.