如何将 Sqoop 导入命令与 --map-column-hive 一起使用?
How to use Sqoop import command with --map-column-hive?
我正在尝试将 Teradata 中的数据 Sqoop 到配置单元。我想到了以下步骤:
1) 使用 Hue 中的所有必填字段创建一个 Hive table。
2) 通过使用 Sqoop 导入命令和 --map-column-hive
属性将数据从 Teradata 加载到 hive .
如何通过Sqoop import命令指向已经创建的Hivetable,让Sqooped数据放到对应的Hivetable?
您可以使用 shell 和 awk 从现有 table 生成 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() "=" toupper()}{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]
我正在尝试将 Teradata 中的数据 Sqoop 到配置单元。我想到了以下步骤:
1) 使用 Hue 中的所有必填字段创建一个 Hive table。
2) 通过使用 Sqoop 导入命令和 --map-column-hive
属性将数据从 Teradata 加载到 hive .
如何通过Sqoop import命令指向已经创建的Hivetable,让Sqooped数据放到对应的Hivetable?
您可以使用 shell 和 awk 从现有 table 生成 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() "=" toupper()}{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]