簡體   English   中英

如何使用Spark隨機播放大文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM