Sqoop函数' - map-column-hive'被忽略

时间:2016-09-30 19:35:23

标签: hadoop hive sqoop

我正在尝试将文件作为镶木地板导入配置单元,而忽略--map-column-hive column_name = timestamp。列'column_name'最初是sql中的datetime类型,它将它转换为镶嵌中的bigint。我想通过sqoop将其转换为时间戳格式,但它无法正常工作。

sqoop import \

--table table_name \

--driver com.microsoft.sqlserver.jdbc.SQLServerDriver \

--connect jdbc:sqlserver://servername \

--username user --password pw \

--map-column-hive column_name=timestamp\

--as-parquetfile \

--hive-import \

--hive-table table_name -m 1

当我在配置单元中查看表时,它仍然显示具有其原始数据类型的列。

我尝试了column_name = string,但这也无效。

我认为这可能是将文件转换为镶木地板的问题,但我不确定。有没有人有解决方案来解决这个问题?

运行命令时没有错误,它只是完成导入,就像命令不存在一样。

1 个答案:

答案 0 :(得分:1)

在hive 1.2版本之前ParquetSerde中的Timestmap支持不可用。 1.1.0中仅提供二进制数据类型支持。

请查看link

请将您的版本升级到1.2以后,它应该可以正常工作。

Please check the issue log and release notes below.

https://issues.apache.org/jira/browse/HIVE-6384

https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12329345&styleName=Text&projectId=12310843