2016-05-18 5 views
0

私はハイブを新しくしました。 2つの外部ハイブ・テーブルを作成し、sqoopを使用してoracleからデータをインポートしました。また、私は、私は上記の外部表に2つの外部表のデータをマージする方法を知ってはいけない、今2つの外部ハイブテーブルを1つの新しいテーブルにマージする

create external table transaction_usa_canada 
(
tran_id int, 
acct_id int, 
tran_date string, 
amount double, 
description string, 
branch_code string, 
tran_state string, 
tran_city string, 
speendby string, 
tran_zip int, 
source_table string 
) 
row format delimited 
stored as textfile 
location '/user/gds/bank_ds/tran_usa_canada'; 

を次のように両方のExternal table 1 and External table 2のデータを持つことになり、新たな外部表を作成しました。

助けてください。

+0

table1とtable2のメタデータを提供できますか。テーブル3も? – Farooque

+0

Plsは私の新しい質問を参照しています... http://stackoverflow.com/questions/37299136/insert-data-of-2-hive-external-tables-in-new-external-table-with-additional -colu – user2998990

答えて

0

2つの外部テーブルに対して同じ列構造を使用している場合は、テキストファイルを共通の場所またはフォルダにコピーし、新しい場所を指す新しいテーブルを作成できます。

2つの外部テーブルのメタデータが異なる場合は、「create table as select」オプションを使用して新しいテーブルに読み込むことができます。

+0

こんにちは....私はこのリンクの詳細を詳しく述べました http://stackoverflow.com/questions/37299136/insert-data-of-2-hive-external-tables-in-new-external-table - 追加コルと一緒に – user2998990

0

union文を使用して、新しいテーブルに読み込むことができます。

INSERT OVERWRITE TABLE [database].[table] 
SELECT 
* 
FROM (
SELECT 
Col_1 STRING, 
Col_2 STRING, 
Col_3 STRING 
FROM 
[table] 
UNION ALL 
SELECT 
Col_1 STRING, 
Col_2 STRING, 
Col_3 STRING 
FROM 
[table]) [table]; 
関連する問題