我在 hadoop 檔案夾中有多個 csv 檔案。每個 csv 檔案都會有標題。每個檔案中的標題將保持不變。
我正在使用 java 中這樣的 spark 資料集撰寫這些 csv 檔案
df.write().csv(somePath)
我也在考慮使用 coalsec(1) 但在我的情況下它的記憶體效率不高
我知道這個寫入還會在檔案夾中創建一些冗余檔案。所以也需要處理
我想將所有這些 csv 檔案合并為一個大的 csv 檔案,但我不想在組合的 csv 檔案中重復標題。我只希望在我的 csv 檔案中的資料頂部有一行標題
我正在使用 python 來合并這些檔案。我知道我可以使用 hadoop getmerge 命令,但它會合并每個 csv 檔案中存在的標題
所以我無法弄清楚如何在不合并標題的情況下合并所有 csv 檔案
uj5u.com熱心網友回復:
coalesce(1)正是你想要的。
速度/記憶體使用是您想要一個檔案的權衡
uj5u.com熱心網友回復:
看來這會為你做:
# importing libraries
import pandas as pd
import glob
import os
# merging the files
joined_files = os.path.join("/hadoop", "*.csv")
# A list of all joined files is returned
joined_list = glob.glob(joined_files)
# Finally, the files are joined
df = pd.concat(map(pd.read_csv, joined_list), ignore_index=True)
編輯:我對 Hadoop 了解不多,但也許同樣的邏輯也適用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/531425.html
下一篇:初識設計模式 - 訪問者模式
