大きな CSV ファイルを操作するためのプログラム [終了]
-
09-06-2019 - |
質問
大きな CSV ファイルの読み取りを処理するための適切なプログラムはありますか?私が扱うデータファイルの中には、1 GB の範囲にあるものもあります。行数が多すぎて Excel で処理することさえできません。Access を使用すると、直接操作するには実際にデータベースにインポートする必要があるため、少し時間がかかることがあります。大きな CSV ファイルを開いて、データを簡単かつ迅速に確認できるシンプルなスプレッドシート レイアウトを提供できるプログラムはありますか?
解決
MySQL は、 LOAD DATA INFILE
指示。また、インポート手順をバイパスして、CSV ファイルから直接読み取ることもできます。 CSVストレージエンジン.
それをネイティブテーブルにインポートする LOAD DATA INFILE
初期費用はかかりますが、その後は INSERT/UPDATE
インデックスフィールドと同様に、はるかに高速になります。CSV ストレージ エンジンの使用は最初はほぼ瞬時に行われますが、高速になるのはシーケンシャル スキャンのみです。
アップデート: この記事 (タイトルのセクションまで下にスクロールします 即時データロード) CSV データを MySQL にロードするための両方のアプローチの使用について説明し、例を示します。
他のヒント
見つけました reCSVエディター は、大きな CSV ファイルを編集するための優れたプログラムです。不要な列を削除するのに最適です。私はこれを 1,000,000 レコードのファイルに簡単に使用しました。
v編集 これには最適です。私は定期的に 100 メガ以上 (最大 1 ギガと言っていましたが、その 2 倍を処理できるとサイトで宣伝していると思います) のファイルを開きます。正規表現のサポートとその他の機能が満載です。70ドルはこれでできる量としては安いです。
GVim は、真のスプレッドシートの静的フィールド サイズ ビューに属していない場合、そのような大きなファイルを無料で処理できます。
vEdit は優れていますが、いつでも「基本」チェックアウトに戻ることができることを忘れないでください。 シグウィン そしてグレーピングを開始します。
役立つコマンド
- grep
- 頭
- しっぽ
- もちろんパールです!
それは、データを実際に何をしたいかによって異なります。このような大きなテキスト ファイルの場合、通常、一度に必要なのはデータのより小さいサブセットだけであるため、検索して操作したい部分を抽出するための「grep」などのツールを見逃さないでください。
データをメモリに収めることができ、Python が好きな場合は、UniTable の部分をチェックすることをお勧めします。 アウグストゥス. 。(免責事項:Augustus はオープンソース (GPLv2) ですが、私はそれを作成する会社で働いています。)
あまり詳しく文書化されていませんが、これは作業を進めるのに役立つはずです。
from augustus.kernel.unitable import *
a = UniTable().from_csv_file('filename')
b = a.subtbl(a['key'] == some_value) #creates a subtable
Excel のようなインターフェイスを直接提供するわけではありませんが、少しの作業で多くの統計をすばやく取得できます。