取消
顯示的結果
而不是尋找
你的意思是:

指數從csv文件dataframe基於文件的原始順序(不是基於任何特定的列,基於整個行)使用火花

andrew0117
貢獻者

如何保證索引總是遵循文件的原始順序。目前,我使用val df = spark.read。選項(地圖(“標題”- >“真正的”,“inferSchema”- >“true”)) . csv (“filePath”)。withColumn(“指數”,monotonically_increasing_id ())。

謝謝!

6個回答6

Hubert_Dudek1
尊敬的貢獻者三世

monotonically_increasing_id不會因為它是保證每一個分區都有單獨的id。整個代碼是什麼?你和很多加載目錄華禾投資嗎?“原始秩序”是什麼意思嗎?它是csv文件創建日期下令,按文件的名字嗎?或者僅僅通過文件中的行號,隻有一個文件?它是可行的,但是您需要提供更多的細節。

謝謝你的回放。

這隻是一個csv文件數千或數百萬行。但是沒有任何時間戳或行號告訴哪一行有最新的數據。的情況是,如果主鍵(組合兩列,文件已經超過20列)發生重複的錯誤,我隻需要保持最新的記錄。這裏的原始順序意味著文件時顯示的順序與任何應用程序打開它。最後一行的原始順序被認為是最新的數據。

Hubert_Dudek1
尊敬的貢獻者三世

我找不到我的代碼,但我記得使用火花“file_name”()。text(),然後操縱文件(爆炸等)在正確的順序。當然,這將是慢,整個文件將一個細胞,它有內存限製,因為它將經曆一個工人。所以文件必須小於RAM的工人。

沒有火花函數顯示一行在源(如將一切每個分區塊和工作),所以其他解決方案不會100%的保證。

如果文件很大或替代,您需要添加ID文件內。

這個文件是下降了最終用戶到azure blob存儲在每周和大小可能有天壤之別。我將處理它通過azure磚筆記本叫azure數據工廠的管道,我可以設置亞行的集群配置。如果我設置工作節點,它能保證我添加的指數monotonically_increasing_id()函數與文件的原始順序不考慮性能?謝謝!

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map