2016-06-30 12 views
1

1つのHDFSフォルダに複数のファイルがあります。 各ファイルを異なるハイブテーブルに読み込み、同じ場所にソースファイルを保存したいとします。ファイルを削除せずにHDFSからハイブにデータをロードする方法

私は、ディレクトリを指す外部テーブルを作成できることはわかっています。

特定のファイルを指す外部テーブルを作成することは可能ですか?

この問題を解決するのにお手伝いできますか?

答えて

1

事前定義された名前のファイルがあらかじめ定義されている場合は、INPUT__FILE__NAME仮想列に基づいてWHERE句を使用して、複数テーブルのINSERTを試すことができます。

FROM some_db.some_external_table 
INSERT INTO table1 
    SELECT a, b, c 
    WHERE INPUT__FILE__NAME like '%/gabuzomeu.csv' 
INSERT INTO table2 
    SELECT a, x, d, CAST(z AS FLOAT) 
    WHERE INPUT__FILE__NAME like '%/wtf.csv' 
... 

参考:

関連する問題