2017-07-12 14 views
1

私はTeradataからハイブにデータをSqoopしようとしています。--map-column-hiveでSqoop importコマンドを使用するには?

1)必要なすべてのフィールドが色相で作成されたハイブテーブルを作成します。
2)テラデータからハイブにデータをロードするために、属性とともにSqoopインポートコマンドを使用します。

Sqoopedデータを対応するHiveテーブルに配置するように、Sqoop importコマンドから既に作成されたHiveテーブルをポイントする方法はありますか?

答えて

0

シェルとawkを使用して既存のテーブルからmap-column-hive属性を生成できます。形式で生成されますCOL1=TYPE,COL2=TYPE,...COLN=TYPE

#!/bin/bash 

#Set table name here 
TABLE_NAME=your_schema.your_table 

#generate map from existing table 
MAP_COLUMN_HIVE=$(hive -S -e "set hive.cli.print.header=false; describe ${TABLE_NAME};" | awk -F " " 'f&&!NF{exit}{f=1}f{printf c toupper($1) "=" toupper($2)}{c=","}') 

#call sqoop with --map-column-hive parameter 
#add other sqoop params 
sqoop import [your sqoop params here] --map-column-hive "$MAP_COLUMN_HIVE" [more sqoop params] 
+0

お寄せいただきありがとうございます。それは私のためにうまくいった... –

関連する問題