Sqoop Hive 导入不支持字母数字(加“_”)

Posted

技术标签:

【中文标题】Sqoop Hive 导入不支持字母数字(加“_”)【英文标题】:Sqoop Hive Import not support alphanumeric (plus '_') 【发布时间】:2020-02-12 08:31:14 【问题描述】:

我想使用 Sqoop 作为 Parquet 文件将数据从 Oracle 导入 Hive。 我一直在尝试使用 sqoop 使用以下命令导入数据:

sqoop import --as-parquetfile --connect jdbc:oracle:thin:@10.222.14.11:1521/eservice --username MOJETL  --password-file file:///home/$(whoami)/MOJ_Analytic/moj_analytic/conf/.djoppassword --query 'SELECT * FROM CMST_OFFENSE_RECORD_FAMILY WHERE $CONDITIONS' --fields-terminated-by ',' --escaped-by ',' --hive-overwrite --hive-import --hive-database default --hive-table tmp3_cmst_offense_record_family --hive-partition-key load_dt --hive-partition-value '20200213' --split-by cmst_offense_record_family_ref --target-dir hdfs://nameservice1:8020/landing/tmp3_cmst_offense_record_family/load_dt=20200213

我收到以下错误:

ERROR sqoop.Sqoop: Got exception running Sqoop: org.kitesdk.data.ValidationException: Dataset name default.tmp3_cmst_offense_record_family is not alphanumeric (plus '_')
org.kitesdk.data.ValidationException: Dataset name default.tmp3_cmst_offense_record_family is not alphanumeric (plus '_')

我已经尝试删除

sqoop import --as-parquetfile --connect jdbc:oracle:thin:@10.222.14.11:1521/eservice --username MOJETL  --password-file file:///home/$(whoami)/MOJ_Analytic/moj_analytic/conf/.djoppassword --query 'SELECT * FROM CMST_OFFENSE_RECORD_FAMILY WHERE $CONDITIONS' --fields-terminated-by ',' --escaped-by ',' --split-by cmst_offense_record_family_ref --target-dir hdfs://nameservice1:8020/landing/tmp3_cmst_offense_record_family/load_dt=20200213

我仍然遇到同样的错误。

ERROR sqoop.Sqoop: Got exception running Sqoop: org.kitesdk.data.ValidationException: Dataset name load_dt=20200213 is not alphanumeric (plus '_')
org.kitesdk.data.ValidationException: Dataset name load_dt=20200213 is not alphanumeric (plus '_')

【问题讨论】:

***.com/questions/49841889/… 看看这个 【参考方案1】:

请尝试重写这部分:

--hive-table default.tmp3_cmst_offense_record_family

用这个:

--hive-table tmp3_cmst_offense_record_family

您已经使用子句 --hive-database 指定了数据库名称

【讨论】:

是的,我做到了。仍然有相同的结果。也许这是一个错误。

以上是关于Sqoop Hive 导入不支持字母数字(加“_”)的主要内容,如果未能解决你的问题,请参考以下文章

Sqoop_具体总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入导出

记录几个sqoop任务执行中遇到的错误

sqoop连接MySQL导入hdfs报错

hive_建表及导入数据

sqoop从oracle数据库抽取数据,导入到hive

利用sqoop将hive数据导入导出数据到mysql