阻止sqoop将datetime转换为bigint

2vuwiymt  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(518)

最近我注意到,每当我使用sqoop从sql数据库摄取数据时,所有datetime字段都转换为bigint(epoch*1000),而不是字符串。
重要的是要注意:我存储的Parquet地板。
我一直在尝试一些sqoop标志,比如 "--map-column-java" 但我不想为数千个表中的数百列手动定义这个。
我缺少什么标志来防止这种sqoop行为?
在以纯文本存储时,sqoop似乎没有做到这一点。

jv2fixgn

jv2fixgn1#

我没有让sqoop在我的table上施展它的神秘魔法,而是决定做以下事情:
摄取到临时表,以文本形式存储。
创建一个类似临时表的表(如果不存在),存储为parquet
将文本存储临时表插入Parquet存储表
这允许使用正确的日期格式,而不需要在sqoop中调整配置和设置(可能不存在)。
唯一的折衷是它稍微慢一点

相关问题