如何使用Sqoop import命令和--map-column-hive?

时间:2017-07-12 08:27:21

标签: hadoop hive sqoop

我正在尝试将数据从Teradata传输到hive。我想到了以下步骤:

1)创建一个包含Hue中所有必填字段的Hive表 2)通过使用Sqoop import命令和--map-column-hive属性将数据从Teradata加载到配置单元。

如何从Sqoop import命令指向已创建的Hive表,以便将Sqooped数据放在相应的Hive表中?

1 个答案:

答案 0 :(得分:1)

您可以使用shell和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]