2017-04-06 34 views
1

私はパーティションにINSERT上書きTABLEコマンドを使用していますと言うことができます: -HiveのINSERT OVERWRITE文で列の順序が重要ですか?

INSERT OVERWRITE TABLE target PARTITION (date_id = ${hiveconf:DateId}) 
SELECT a as columnA, 
     b as columnB, 
     c as columnC from sourcetable; 

して選択、挿入、上書き/で指定されたターゲット表の列の順序が同じではないと言うことができます。それは問題ですか?理想的には、AS節を使用して明示的に列名を指定しているので、それは重要ではありません。しかし、私はターゲット側でスワップされているいくつかのデータを取得しています。おそらく列の順序が重要であることを強く疑っています。だから、ちょうど確認したかった。

答えて

2

重要なのは列の順序だけです。
ソースとターゲットの間に正確な適合がなければなりません。

p.s.
私は、ターゲットとソースの間の列名によるマッチングをサポートするSQLプロバイダを認識していません。
ISO SQLは、例えば、ターゲット表の列のリストをサポート:

insert into trg (col4, col1, col2) 
select ... , ... , ... from ... 

これは、現在のハイブでサポートされていません。

+0

しかし、SELECTでASを使用して明示的な列名を使用しています - だから私は推測しません。 – Dhiraj

+1

まさに.............................. –

+0

ありがとう、非常に便利な答え – Dhiraj

関連する問題