問題タブ [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 - HDFStore に格納した後に nan 値を取得する
/を使用して次のコードを使用して、多くのNaN
値を含む大きなデータセットを保存しています。HDFStore
python
pandas
numpy
そして、最初の列を配列としてロードしたいので、次のようにします。
問題は、初期値のない小さな配列を取得することNaN
です。ストアにデータを保存すると、値が「忘れられ」NaN
、非NaN
値とそのインデックスのみが保持されるためです。NaN
初期値を含む配列を取得するにはどうすればよいですか?
hadoop - Hadoop を使用して株式市場のティック データを保存する
私はHadoopとそれに関連するさまざまなプロジェクトについて楽しく学んでおり、現在、マーケットティックデータの大規模なコレクションを保存するシステムを構築するために2つの異なる戦略を考えています.Hadoop/HDSFの両方を始めたばかりです.と HBase ですが、これらのテクノロジを使用して後でジャンクする必要のないシステムの種を植えるのを誰かが手伝ってくれることを願っています。以下は、いくつかのクエリとデータの使用例を含む私のシステムと要件の概要です。最後に、私が読んだ小さなドキュメントからの最良のアプローチについての私の現在の考えです。これは自由回答形式の質問であり、洞察力に富み、最良の回答を受け入れることができれば幸いです。以下の点のいずれかまたはすべてについて自由にコメントしてください。- ダンカン・クレブス
システム要件 - システムの過去のバック テスト、過去のデータのチャート作成、将来のデータ マイニングにデータ ストアを活用できること。いったん保存されると、データは常に読み取り専用になり、高速なデータ アクセスが望まれますが、バック テストの際には必須ではありません。
静的スキーマ- 非常に単純です。フィードから 3 種類のメッセージを取得したいと考えています。
- 日付、曜日、時刻を含むタイムスタンプ
- Symbol、timestamp、ask、askSize、bid、bidSize、出来高を含む見積もり (約 40 列のデータ)
- Symbol、timestamp、price、size、exchange を含む取引 (約 20 列のデータ)
データ挿入の使用例- データのライブ マーケット ストリームから、またはブローカー API を介したルックアップから
データ クエリのユース ケース- 以下は、データを論理的にクエリする方法を示しています。
Get me all Quotes,Trades,Timestamps for GOOG on 9/22/2014
Get me all Trades for GOOG,FB BEFORE 9/1/2014 AND AFTER 5/1/2014
Get me the number of trades for these 50 symbols for each day over the last 90 days.
The Holy Grail - MapReduce は以下のようなユースケースに使用できますか??
分散エージェントを介して生の市場データからメタデータを生成します。たとえば、データベースに保存されているすべての株式とすべてのセッションについて、1 分間隔で平均取引量を計算するジョブを作成します。この値を計算する必要がある株式とセッションを伝える、各株式/セッションのエージェントを持つジョブを作成します。(これが MapReduce でできることですか???)
エージェントのクラスパスに独自のユーティリティ コードを追加して、たとえば上記のユース ケースでその値を中央レポやメッセージング サーバーに公開できますか? エージェントを OSGI バンドルとしてデプロイできますか?
毎朝、市場前取引の前に実行されるさまざまなタイプのメトリックとスコアに対して、さまざまなタイプのエージェントを作成しますか?
高頻度取引
高頻度取引システムのコンテキストで Hadoop を使用した経験を誰かが共有できるかどうかも興味があります。このテクノロジーを始めたばかりの私の最初の感覚は、Hadoop は大量の過去のティック データを保存および処理するのに最適であるということです。誰かがこれをリアルタイム取引に使用している場合は、もっと学びたいと思います! - ダンカン・クレブス
pandas - Pandas HDFStore: 一致しない文字列のクエリが遅い
私の問題は、DataFrame (hdf5 ファイルに格納されている) に含まれていない文字列を検索しようとすると、クエリを完了するのに非常に長い時間がかかることです。例えば:
2*10^9 行を含む df があります。HDF5 ファイルに保存されます。「data_column」としてマークされた「code」という名前の文字列列があります(したがって、インデックスが付けられます)。
データセット ( store.select('df', 'code=valid_code') ) に存在するコードを検索すると、70K 行を取得するのに約 10 秒かかります。
ただし、データセットに存在しないコード ( store.select('df', 'code=not_valid_code') ) を検索すると、クエリの結果 (0 行) を取得するのに約 980 秒かかります。
次のようなストアを作成します: store = pd.HDFStore('data.h5', complevel=1, complib='zlib') 最初の追加は次のようになります: store.append('df', chunk, data_columns=['code ']、expectedrows=2318185498)
この動作は正常ですか、それとも何か問題がありますか?
ありがとう!
PS:この質問はおそらくこの他の質問に関連しています
アップデート:
Jeff のアドバイスに従って、彼の実験を再現したところ、Mac で次の結果が得られました。これは、生成されたテーブルです。
そして、これらは結果です:
違いが十分に大きくない可能性があるため、同じ実験を試みましたが、より大きなデータフレームを使用しました。また、Linux を搭載した別のマシンでこの実験を行いました。
これがコードです (元のデータセットに 10 を掛けただけです):
これはテーブルです:
これらはファイルです:
そして、これらは結果です:
これらは私のバージョンの Pandas と Pytables です:
Pandas なしで Pytables のみを使用した場合に同様の動作を観察したため、この問題が Pandas に関連していないことは確かです。
更新 2:
Pytables 3.0.0 に切り替えたところ、問題は修正されました。これは、Pytables 3.1.1 で生成されたものと同じファイルを使用しています。
sql - pandas HDFStore: sql "GROUP BY" と同等
次の SQL クエリを変換して、大きな pandas HDFStore で実行しようとしています。
これを実装する最良の方法は何ですか?col1
、col2
、 にインデックスがありますcol3
。
select - HDFStore を使用して列を比較して行を選択する
Pandas を使用して hdf5 ファイルの 2 つの列を比較して、いくつかの行を選択するにはどうすればよいですか? hdf5 ファイルが大きすぎてメモリにロードできません。たとえば、列 A と列 B が等しい行を選択したいとします。データフレームはファイル 'mydata.hdf5' に保存されます。ありがとう。
これはうまくいきません。store.select('mydf',where='A==12') が機能することはわかっています。しかし、列 A と B を比較したいと思います。サンプル データは次のようになります。