最近我注意到,每当我使用sqoop从sql数据库摄取数据时,所有datetime字段都转换为bigint(epoch*1000),而不是字符串。重要的是要注意:我存储的Parquet地板。我一直在尝试一些sqoop标志,比如 "--map-column-java" 但我不想为数千个表中的数百列手动定义这个。我缺少什么标志来防止这种sqoop行为?在以纯文本存储时,sqoop似乎没有做到这一点。
"--map-column-java"
jv2fixgn1#
我没有让sqoop在我的table上施展它的神秘魔法,而是决定做以下事情:摄取到临时表,以文本形式存储。创建一个类似临时表的表(如果不存在),存储为parquet将文本存储临时表插入Parquet存储表这允许使用正确的日期格式,而不需要在sqoop中调整配置和设置(可能不存在)。唯一的折衷是它稍微慢一点
1条答案
按热度按时间jv2fixgn1#
我没有让sqoop在我的table上施展它的神秘魔法,而是决定做以下事情:
摄取到临时表,以文本形式存储。
创建一个类似临时表的表(如果不存在),存储为parquet
将文本存储临时表插入Parquet存储表
这允许使用正确的日期格式,而不需要在sqoop中调整配置和设置(可能不存在)。
唯一的折衷是它稍微慢一点