当我尝试在Sqoop上运行命令时:
sqoop import --connect jdbc:oracle:thin:@ // MyServer / MyDatabase --username MyUser --password MyPassword -m 1 --table MyTable --fetch-size 10 --create-hive-table --hive-table LocalTable --as-avrodatafile --target-dir / user / sample
我收到以下错误:
导入失败:无法转换sql类型-102
是因为我试图生成avro吗? 谁能告诉我问题是什么以及如何解决?
答案 0 :(得分:0)
我发现了问题和解决方案。
错误消息意味着avro由于其数据类型而无法转换其中一列。问题恰恰与日期格式有关。
解决方案是在sqoop命令中添加它:
- map-column-java DATE_COLUMN = String
有了这个,我们做了一个castin to string,而avro不再抱怨了
只是添加一些提示:
如果您需要投射多个列,请在元素之间使用','并且不要留下空格:
- map-column-java DATE_COLUMN1 = String,DATE_COLUMN2 = String
变量类型必须以大写
中的第一个字母书写- map-column-java COLUMN1 = String,COLUMN2 = Integer