Sqoop导出失败,出现NumberFormatException

时间:2019-05-03 03:35:45

标签: export teradata sqoop

无法使用sqoop获取双精度值将数据导出到teradata。即使将teradata的数据类型更改为字符串,我也得到NumberFormatException,但仍然得到NumberFormatException。我相信将字符串转换为float或Integer会导致NumberFormatException。如果我错了,请纠正我。

我还在sqoop导出中包括了map-column-java选项,以明确提及要导出的列的数据类型。

我有一个带“ |”的csv文件定界符,示例数据如下所示。

65.0|50.0|65.0|118.77
101.0|96.0|101.0|210.08
37.0|29.0|37.0|34.78
66.0|61.0|66.0|153.78

我的Teradata表创建如下。

CREATE SET TABLE DB_NAME.TABLENAME(
  col1 varchar(20),
  col2 varchar(20),
  col3 varchar(20),
  col4 varchar(20)
)

我也尝试过将数据类型设置为小数(10,5),并在所有列中都将map-column-java称为“ Double”,但是我仍然遇到相同的错误。

在OP评论中:

sqoop export --libjars /opt/cloudera/parcels/SQOOP_TERADATA_CONNECTOR/sqoop-connector-teradata-1.7c6.jar,/opt/cloudera/parcels/SQOOP_TERADATA_CONNECTOR/lib/terajdbc4.jar \
  --connect "jdbc:teradata://host_name/Database=database_name,CHARSET=UTF8" \
  --table table_name \
  --username username \
  --password password \
  --export-dir /path/to/directory \
  --map-column-java col1=Double,col2=Double,col3=Double,col4=Double \
  --input-fields-terminated-by '|' \
  --input-lines-terminated-by '\n' \
  --input-null-string '' \
  --input-null-non-string ''

0 个答案:

没有答案