問題タブ [spark-thriftserver]
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.
apache-spark - 構造体フィールドを持つ dbt のインクリメンタル モデル
考えられるユースケースについて DBT を評価していますが、1 つの状況を除いてすべて問題ないようです。これは、ソース テーブルに構造体フィールドがある場合です。
を使用しています。Spark Thrift Server connector
基になるデータは として保存さparquet
れS3
ます。DBT バージョンは 0.20 です
これは、ソース テーブルの作成文の一部です。そこに構造体フィールドがあることがわかります。
私のモデルは、特定の where 句を使用してそのテーブルに対して選択を実行するだけです。初めて実行すると、正常に動作し、元のテーブルとまったく同じテーブルが作成されますが、構造体フィールドであっても、いくつかの小さな変更が加えられています。
これはシンクテーブルの作成テーブルの一部です
where句に他の値を指定してdbtを再度実行すると、シンクテーブルに別のパーティションが作成されるはずです。クエリのコンパイルは問題ありません
次のエラーが発生します。
構造体の内部フィールドをルートフィールドとして読み書きしようとしているようです。私は他の構造体フィールドでテストしましたが、最初の実行と同じように、構造体が必要なだけです。私が言ったように、それは2回目の実行でのみ起こります。
これは私のモデルのクエリです。非常に単純です
プロパティを構造体からjsonに変換するように選択を変更するとto_json(properties)
、期待どおりに機能し、新しいパーティションが生成されます。
DBT の構造体に何か問題がある場合は? 私は何か間違ったことをしていますか?
私はインクリメンタルマテリアライゼーションを使用しており、append と insert_overwrite でテストしましたが、問題はないようです