2017-09-11 4 views
1

WITH私はいくつかのクエリを実行し、文とSQLを使用しSnappydataを使用しています:Snappydata SQL文の

WITH x AS (
    SELECT DISTINCT col_a, col_b 
    FROM table_a 
) 
INSERT INTO table_b 
SELECT x.col_a, x.col_b 
FROM x 
    JOIN table_c c ON x.col_a = c.col_a and x.col_b = c.col_b 

ローカルモードで実行している場合は、このSQLコードは細かい動作しますが、私はコンパイル済みのjarファイルを送信するとき"APP.X"という表が存在しないと言うエラーをスローします。

org.apache.spark.sql.TableNotFoundException: Table 'APP.X' not found; 

なぜこのようなことが起こるのでしょうか?これが原因途中で名前を解決しようとするおおよそのクエリ処理(AQP)ルールの解像度に既知の制限でのx

WITH x AS (
    SELECT DISTINCT col_a, col_b 
    FROM table_a 
) 

INSERT 
    INTO table_b 
SELECT x.col_a, 
     x.col_b 
    FROM x 
    JOIN table_c c 
    ON x.col_a = c.col_a 
    AND x.col_b = c.col_b 

答えて

0

試してみます。 TPC-DSクエリを実行しているときにこれを確認しました。これは最新のAQPマスターで修正され、修正は1.0で利用可能になります。

INSERT INTO table_b 
SELECT x.col_a, x.col_b 
FROM (SELECT DISTINCT col_a, col_b FROM table_a) x 
    JOIN table_c c 
    ON x.col_a = c.col_a 
    AND x.col_b = c.col_b 

B)またはAQPクエリを使用していない場合、あなたは、製品のjarファイルのディレクトリからsnappydata-AQPジャーを移動することができます。通常のサブクエリバリアントへ

a)の変更:今のところ2つのオプションがあります。

+0

応答のおかげで、この問題のコードを入力するときにこの "FROM x"を追加するのを忘れましたが、修正されました。 – user3230153

+0

これは、https://github.com/SnappyDataInc/snappydata/issues/641 –

+0

ポインタのおかげで助けになるかもしれません。残念ながらこれは私の場合には当てはまりません。なぜならwithステートメントは手前にテーブルを作成する必要はないから、私は実際にSnappydataで「WITH STATEMENT」が正しくサポートされていないと思われる – user3230153

2

FROM追加

+0

説明のためにありがとうございます。今はSQL文を変更するだけです。 – user3230153

関連する問題