問題タブ [fastparquet]
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.
dask - インデックス付きの Parquet ファイルの形状の計算が非常に遅いのはなぜですか?
同じフォルダーにある複数の Parquet ファイルから Parquet ファイルを作成しました。各ファイルはパーティションに対応します。
Parquet ファイルは、さまざまなプロセスで作成されます ( Python を使用concurrent.futures
)。1 つのプロセスで実行するコードの例を次に示します。
df
最大で行 (および 22 列) を含み100e3
、整数インデックス ( と呼ばれるcid
) でインデックス付けされます。
次に、次を使用して 2 つのメタデータ ファイルを作成しました。
実際_metadata
、_common_metadata
すべての Parquet ファイルを含むフォルダーに正しく作成されます。
データにはインデックスが付けられているか、メタデータ ファイルが含まれているため、データのサイズなどの基本的な情報の取得は高速であるはずだと単純に考えました。たとえば、次の場合は永遠に時間がかかります。
それは例外ですか?
また、ほとんどの列はint64
でfloat64
あり、いくつかの列はobject
(string
サイズが異なります。
python - 寄木細工のファイルを Redshift にロードする
データフレームを寄木細工に保存してから、redshift にロードしようとしています。そのために私は次のことを行います:
次に、「COPY」コマンドを使用して、保存したファイルを直接 redshift に読み込みます。
次のエラーが発生します。
write path: has an incompatible Parquet schema for column ...
.csv で同じ手順を適用すると、問題なく動作します。寄木細工に切り替えるときの問題の原因は何ですか?
python - pyarrow.lib.ArrowInvalid: ('Y 型で X を変換できませんでした: Arrow データ型を推測するときに Python 値型を認識しませんでした')
次のコードを使用して、包含オブジェクトをpyarrow
に変換するpandas.DataFrame
Player
pyarrow.Table
エラーが発生します:
を使用して発生した同じエラー
pyarrow
を使用してこれらの Python オブジェクトをシリアル化するようにフォールバックすることは可能pickle
ですか? または、より良い解決策はありますか?はpyarrow.Table
最終的に を使用してディスクに書き込まれParquet.write_table()
ます。
- Python 3.8.0、パンダ 0.25.3、pyarrow 0.13.0 を使用。
pandas.DataFrame.to_parquet()
はマルチ インデックスをサポートしていないため、使用するソリューションpq.write_table(pa.Table.from_dataframe(pandas.DataFrame))
が推奨されます。
ありがとうございました!
python - fastparquet の圧縮オプションが一貫していません
fastparquetのプロジェクトページによると、fastparquet
さまざまな圧縮方法をサポート
オプション (圧縮アルゴリズム。gzip は常に使用可能):
特にzstandard
、高い圧縮率と印象的な高速圧縮/解凍速度を提供する最新のアルゴリズムです。そして、これが私が fastparquet に望むものです。
しかし、fastparquet.writeのドキュメントでは
各列に適用する圧縮。たとえば、GZIP や SNAPPY、または {"col1": "SNAPPY", "col2": None} のような辞書で、列ごとの圧縮タイプを指定します。どちらの場合も、コンプレッサーの設定は、基礎となるコンプレッサーのデフォルトになります。基になるコンプレッサーに引数を渡すには、各 dict エントリ自体が辞書である必要があります。
zstandard については何も言及されていません。さらに悪いことに、私が書くと
それは言うエラーをポップアップ表示します
圧縮「LZ4」は利用できません。オプション: ['GZIP', '非圧縮']
fastparquest
「GZIP」のみをサポートしますか?これは、プロジェクト ページとはかなり異なります。いくつかのパッケージがありませんか? すべてのプロジェクトページに記載されている圧縮アルゴリズムで fastparquest を使用するには?