問題タブ [polybase]

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.

0 投票する
1 に答える
4483 参照

pandas - Parquet エラーからのポリベース: Java.lang.Double をキャストできません

Polybase 経由で Azure Data Warehouse を読み込んで、Azure Blob にある Parquet ファイルを読み込んでいます。

まず、SQL で外部テーブルを作成して Parquet ファイルを参照し、次に CTAS で読み込みました。SQL で使用するデータ型に関係なく、この型キャスト エラーが発生します。DECIMAL、NUMERIC、FLOAT を試しました。ただし、VARCHAR のロードは正常に機能します。

df.to_parquetを使用して Python Pandas データフレームから作成された Parquet ファイルがどのように作成されたかに関係があると思われますpyarrow。ソースコードを掘り下げて実験してみると、Arrow (Parquet の前のステップ) にあるときのデータ型 data は Double であることがわかります。多分それが理由ですか?

また、ファイル作成時の圧縮形式は Gzip と Snappy の両方を試し、SQL 外部テーブルの作成時はサイコロなしで試しました。

これから発狂。何か案は?

再現する手順

環境:

パイソン:

Azure の手順:

  1. Parquet ファイルを Azure Blob にアップロードしました
  2. Azure Data Warehouse Gen2 を使用、サイズ: DW400c
  3. ドキュメントチュートリアルに従って、DATABASE SCOPED CREDENTIAL 、EXTERNAL DATA SOURCE、および EXTERNAL FILE FORMAT を作成しました

SQL コード:

そして、ここにエラーがあります:

編集:同じエラーfastparquetの代わりに 使用してみました。pyarrow