sqoop import命令与分区键有关的问题

时间:2018-12-21 06:21:57

标签: hive sqoop sqoop2

我正在尝试使用sqoop命令将数据导入到蜂巢表中。蜂巢表按date2分区,日期格式为“ 9/6/2017 00:00:00”。当我使用sqoop命令通过日期列导入数据时,会引发错误。

Teradata表: column1,date2,column3 1,9 / 6/2017 00:00:00,qwe 2,9 / 20/2017 00:00:00,我们

Sqoop命令:

sqoop import \
--connect jdbc:teradata://<server>/database=<db_name> \
--connection-manager org.apache.sqoop.teradata.TeradataConnManager \
--username un \
--password 'pwd' \
--table <tbl_name> \
--where "cast(date2 as Date) > date '2017-09-07' and cast(date2 as Date) < date '2017-09-20'" \
--hive-import --hive-table <db_name>.<tbl_name> \
--hive-partition-key date2 \
-m1 

错误

  

ERROR teradata.TeradataSqoopImportHelper:正在运行Teradata导入作业的异常   java.lang.IllegalArgumentException:错误的FS:/ usr / tarun / date2 = 1900-01-01 00%3A00%3A00

1 个答案:

答案 0 :(得分:0)

当我尝试将您的命令翻译成多行时,看起来您错过了一个\字符,这就是它看起来抱怨的原因。 --hive-import不以“ \”结尾。配置单元表名称在命令中也丢失了

vec4  color = texture2D (sTexture, vTexCoord);
color.g = color.g * 1.2;
gl_FragColor = color;

替代方法是尝试使用create-hive-table命令

sqoop import \
--connect jdbc:teradata:///database= \ 
--connection-manager org.apache.sqoop.teradata.TeradataConnManager \
--username un \
--password 'pwd' \
--table \
--where "cast(date2 as Date) > date '2017-09-07' and cast(date2 as Date) < date '2017-09-20'" \
--hive-import \
--hive-table tarun121 \
--hive-partition-key date2 \
-m1

让我知道这是否可以解决问题。