サイズが〜5-6GB(行数百万)の大きなCSVファイルがあります。だからパンダはそれを扱うことができません(私のラム容量は2GBなので、メモリエラーが出ます)。 Hadoopを使用して(つまり、各ノードの各ファイルのブロックを保存して)、起動する方法と、各ブロックで操作を実行するHadoopデータベース(Hive、HBase、PIG)を使用します。質問に間違いがある場合は、私がこの分野の初心者であることを教えてください。 また、hadoopではなく、この巨大なCSVファイルをSQLまたはPostgresに保存することはできますか? ありがとうございます。Pythonで大容量のcsvファイルを保存、取得(および実行)する方法はありますか?
答えて
パンダは、ファイルをチャンクで読み取ることで大きなファイルを処理できます。 pd.read_csv()
関数にchunksize
パラメータを指定すると、TextFileReader
が返され、メモリに収まる各チャックの操作を繰り返して反復処理を実行できます。あなたが集計やチャックのサイズを小さくし、してはならない各チャック上で行う
reader = pd.read_csv('your_file.csv', chunksize=1000)
for chunk in reader:
# do operations on chuck which is a dataframe with 1000 rows.
注意、操作:ここで
は、一度に1000行を読み取り、各チャンクで操作を行う例です。それらをリストに格納してください。そうしないと、メモリ不足になります。DataFrame
の最終サイズを減らさないように列の操作を行う必要がある場合は、各チャックで操作した後、結果をファイルに保存します。
通常のテキストファイルのようにいつでも読むことができ、行ごとに解析することができます。あなたはそれでワトーバー治療をすることができます。以下のような
何か:
Header = []
with open('CSVFile.name' ], 'r') as InputFile:
for Line in InputFile :
PureData = re.split(Separator, Line[:-1])
# assume 1st line is header
if not Header :
Header = PureData
else :
MyRecord = map(lambda x, y: { x, y }, Header, PureData)
print(str(MyRecord))
ありがとう、私はcsvを分割して操作を実行したくありません。私は最初にこの全文データをデータベースに移動することができます(私はSQLを試しましたが時間がかかりました)。そこから、特定の列のセットを取り出し、いくつかの操作を実行し、その結果をそのストアに戻すことができますデータベース。どのデータベースを使用すればいいですか(Pythonでうまくいく大きなデータ・データベース) –
DB内のデータを変更する必要がなければ、elasticsearchのようなものを見てください。さまざまな "視点"からの検索、特に巨大なDB上での検索では非常に効率的です。ログスタッチがあなたのcsv 2 ELKフィンガーを鼻で処理するようなツールです。 – NeronLeVelu
- 1. SharedPreferencesで日付を保存および取得する方法
- 2. asp.netでイメージを保存および取得する方法
- 3. Chromeの保存容量と保存容量を取得できない
- 4. ファイルからJCSキャッシュを保存および取得する
- 5. ファイルに保存し、Pythonでファイルの内容を取得する
- 6. cpp、python、およびcsvファイルから実行ファイルを作成しますか?
- 7. アンドロイドでGsonからオブジェクトを保存および取得する方法は?
- 8. たXmlReaderおよびリモートの大容量のファイル
- 9. 大量のデータをC++で大量に保存する方法
- 10. ドッカーの画像を保存および開く方法はありますか?
- 11. AndroidのsharedPreferencesでビットマップを保存および取得する方法は?
- 12. アンドロイドアプリでユーザーデータを保存および取得しますか?
- 13. フラグメントライフサイクルからレルムデータを保存および取得しますか?
- 14. ウィンドウの状態を保存および取得する方法は?
- 15. WPFでキャンバスコントロールとそのデータを保存および取得する方法
- 16. 大容量の大容量ファイル
- 17. AndroidでAWS Cognito JWTトークンを保存および取得する方法
- 18. アンドロイドでビューの配列を保存および取得する
- 19. 大容量データセットの保存と検索
- 20. csvファイルの内容をデータフレームに保存する[Python Pandas]
- 21. スウィフトでSqliteで画像を保存および取得する
- 22. 大容量/低速接続での大容量ファイルのアップロード方法
- 23. PHP大容量のCSVファイルを並べ替えます
- 24. MaxMindのGeoIP無料国CSVは、MySQLにファイルおよびMaxMindのGeoIP無料国CSVは、MySQLにファイルやディスク容量を節約するインポートする方法 - ディスクスペース
- 25. Couchbaseでハッシュマップを保存および取得する
- 26. SharedPreferencesで値を保存および取得する
- 27. javascriptを使用してjsonファイルからデータを保存および取得する方法は?
- 28. NSUserDefaultsを使用してデータを保存および取得する方法
- 29. Neo4jに量的および時系列データを保存する方法
- 30. 時系列データの保存および取得方法に関する提案
は答えてくれてありがとう、私はチャンクCSVをしたいし、それに対して操作を実行しないでください。私は最初にこの全文データをデータベースに移動することができます(私はSQLを試しましたが時間がかかりました)。そこから、特定の列のセットを取り出し、いくつかの操作を実行し、その結果をそのストアに戻すことができますデータベース。だから私はどのデータベースを使用する必要がありますか(Pythonでうまくいく大きなデータ・データベース)。 –