問題タブ [hdfstore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - メモリの制約があるPython 2.7で2つの異なる行形式を持つ大きなCSVファイルを解析しますか?
Python 2.7 で読み取る必要があるファイルのコレクション (1 つの ~10GB ファイルが複数のファイルに分割されるため、それぞれ約 1GB) があります。ファイル形式は次のようになります。
で始まる行は2
、一意の値に対して無期限に繰り返すことができLINEINDEX#
、次の行は1
新しいKEY
項目で始まります (独自の行が続きます2
)。2
複数の に基づくデータ型のテーブルを効率的に生成できるようにする必要があるKEY
ため、実際には行はまったく必要ありません1
。空のフィールドにデータがある場合とない場合があるため、そこにあるすべてのデータを取得する必要があります。
このデータに関連するプログラムのほとんどは Pandas を使用しているため、理想的には Pandas に固執しようとしていました。私の計画は、これらのファイルを HDF5 ファイルに解析し、必要に応じてそこからテーブルを作成することでした。それが当面の問題に対処する最善の方法であるかどうかはわかりません。そのため、代替案に関する提案は大歓迎です。現在、この処理は ffdf を介して R で行われていますが、Python に移行する必要があります。
これらのファイルを 1 行ずつ読み取ることができず (メモリ不足がほぼ即座に表示されます)、行を削除/無視します1
。これらの行を「コメント」として扱い、無視するためにPandas を試してみread_csv
ましcomment='1'
たが、他の投稿に基づいて何よりもバグのように思われる CParserError が表示されます (他の人がそのエラーについて提案したように、最初の行をスキップしようとしました、しかし、それはうまくいきませんでした)。
(私が持っている) データ型を指定せずにファイルを処理すると、次のようなパフォーマンスの問題が発生します。
次に、 を変換するto_hdf
と、同様のパフォーマンスの問題が発生します。
一緒に始まる行を無視するか、行1
ごとに作業しようとするたびにメモリ不足になることなく、2 つの異なる dType マップを何らかの方法で指定する最良の方法は何ですか? 2
のリストに基づいて明細項目を照会するために、このデータを保存するより良い方法はありますKEY
か?
今のところ、コードは単純です:
python - hdf5 ファイルから選択したチャンクの数を決定する
チャンク内のファイルから選択する場合hdf5
、結果の選択に含まれるチャンクの数を知りたいです。
入力データの行数はnrows
最大 100ml、つまりchunksize
100k ですが、ほとんどの選択ではチャンク内の行数nrows_chunk
が少ないため、where
1 つまたは複数のチャンクを選択できます。チャンクで操作を行う前と呼び出し時に、iteratorGenerator()
チャンクがいくつあるか知りたいです。直感的に、私の構文のようなものが欲しいのですlen(list(enumerate(iteratorGenerator())))
が、これは length=1 になります (一度に 1 つのチャンクしか考慮されないためだと思いますiteratorGenerator()
)。
ジェネレーターを使用する全体的なアイデアは、すべての選択を一度に実行するのではなく、チャンクごとに実行することであるため、この問題の解決策はないと思いました。しかし実際には、for
以下のループを実行すると、最初の反復には非常に長い時間がかかりますが、次の反復にはわずか数秒しかかかりません。これは、最初の反復でチャンクに関するほとんどのデータが収集されることを示唆しています。これは私には不可解であり、チャンクによる選択がどのように機能するかについての説明をいただければ幸いです。
さらに、インが何chunksize
をHDFStore.select
指しているのかわかりません。私の経験から、条件を適用した後の選択されたチャンクの最大サイズですwhere
。一方、http://pandas.pydata.org/pandas-docs/stable/generated/pandas.HDFStore.select.htmlは、chunksize: nrows to include in iteration を定義しています。これは、読み取る行数のように聞こえます。から。どちらが正しい?
python - Pythonで.h5ファイルからフレームを取得中のUnicodeエラー
pandas.HDFStore を使用して .h5 ファイルを読み込もうとしています
このコードで:
このコード行を試すと問題が発生します
そして、このエラーを返します:
「UnicodeDecodeError: 'ascii' コーデックは位置 2108 のバイト 0xc3 をデコードできません: 序数が範囲内にありません (128)」
このリンクの解決策を試しましたが、うまくいきませんでした。
ですから、このエラーを修正するのを手伝ってください。
hadoop - HDF5 ファイルを Parquet ファイルに変換するにはどうすればよいですか?
pandas を使用して、約 800 GB の巨大なデータフレームを HDF5 に保存しましたpandas.HDFStore()
。
これを Impala でクエリしたいと思います。このデータを Parquet に解析する簡単な方法はありますか? または、Impala では HDF5 を直接操作できますか? HDF5 のデータに別のオプションはありますか?