sqoop java.lang.RuntimeException: 无法解析输入数据
sqoop java.lang.RuntimeException: Can't parse input data
我正在尝试将 table 从配置单元导出到 oracle 数据库。
hive 中的 table 我尝试从
导出
CREATE TABLE `db.to_oracle`(
`ctn` string,
`platform_code` string,
`sum` double,
`days_ctn` int,
`mtr_comments` string,
`imsi` string,
`ban` int,
`price_plan` string,
`market_code` string,
`currency` string,
`balance` string,
`time_key` date)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
我的sqoop声明
sqoop export \
-D mapreduce.job.queuename=adhoc \
-D oracle.jdbc.mapDateToTimestamp=false \
--connect jdbc:oracle:thin:secret \
--password pas \
--username user\
--export-dir /apps/hive/warehouse/db.db/to_oracle/ \
--input-fields-terminated-by '\t' \
--input-lines-terminated-by '\n' \
--table database.oracle_table
我收到这个错误
java.lang.RuntimeException: Can't parse input data: '9696278394S10.01dolg_neaktivnost#20170513_3#1#12.0525099318958479562895398812VSE1NIKORUR-9992017-05-13'
sqoop 似乎无法识别分隔符之类的东西。为什么会这样,我该如何纠正?
问题出在定界符上,因为您没有在 hive table 中指定定界符,默认的 hive 定界符是:
字段由“\001”终止
收集项目被“\002”终止
映射键由“\003”终止
由“\n”终止的行
在 hive table 创建或您的 sqoop 作业中更改分隔符以解决问题。
我正在尝试将 table 从配置单元导出到 oracle 数据库。
hive 中的 table 我尝试从
导出CREATE TABLE `db.to_oracle`(
`ctn` string,
`platform_code` string,
`sum` double,
`days_ctn` int,
`mtr_comments` string,
`imsi` string,
`ban` int,
`price_plan` string,
`market_code` string,
`currency` string,
`balance` string,
`time_key` date)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
我的sqoop声明
sqoop export \
-D mapreduce.job.queuename=adhoc \
-D oracle.jdbc.mapDateToTimestamp=false \
--connect jdbc:oracle:thin:secret \
--password pas \
--username user\
--export-dir /apps/hive/warehouse/db.db/to_oracle/ \
--input-fields-terminated-by '\t' \
--input-lines-terminated-by '\n' \
--table database.oracle_table
我收到这个错误
java.lang.RuntimeException: Can't parse input data: '9696278394S10.01dolg_neaktivnost#20170513_3#1#12.0525099318958479562895398812VSE1NIKORUR-9992017-05-13'
sqoop 似乎无法识别分隔符之类的东西。为什么会这样,我该如何纠正?
问题出在定界符上,因为您没有在 hive table 中指定定界符,默认的 hive 定界符是:
字段由“\001”终止
收集项目被“\002”终止
映射键由“\003”终止
由“\n”终止的行
在 hive table 创建或您的 sqoop 作业中更改分隔符以解决问题。