export - Sqoop 导出失败并出现 NumberFormatException
问题描述
无法使用 sqoop 将数据导出到 teradata 以获取双精度值。即使我已将 teradata 的数据类型更改为字符串,我也会收到 NumberFormatException,我会收到 NumberFormatException。我相信将字符串转换为浮点数或整数结果为 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 ''
解决方案
推荐阅读
- java - 为什么我不能将 lambda 分配给无类型的谓词引用?但是可以为其分配一个初始化的类型谓词引用吗?
- c++ - offsetof 是否需要指针取消引用?
- javascript - NodeJS和mongo:从回调函数中的数据中插入许多更改值
- ios - 如何在边界更改时使布局无效
- java - gainStyledAttributes 工作错误
- php - Flutter http 的 JSON 格式
- google-sheets - Google Sheet Filter View regexmatch 自定义公式
- groovy - 如何使用groovy解码base64并转换为pdf
- bash - 如何在函数中使用 PROMPT_COMMAND
- directory - 命令提示符 - 系统找不到指定的路径