hive关于map和array项导入导出格式的问题

本文探讨了Hive在处理Map和Array类型数据时的导入与导出格式问题。在导出数据到HDFS时,Hive默认使用'01'作为列分隔符,而对于复杂数据结构如Map和Array,它会采用JSON格式。尽管尝试通过transform脚本指定分隔符,但在存储到HDFS时仍会应用'01'。同时,Hive目前不支持在导入时自定义分隔符,这给数据处理带来了一定挑战。
摘要由CSDN通过智能技术生成
上周写的一个python的transform脚本,会将输入的map和array进行修改后输出,但是将输出数据导回到hive表中时出现了一些关于map和array的格式问题。于是想到要测试几种情况下,hive数据map和array支持的输入和输出。

结论:假如想要把表中的map读出来做一些处理后再放回去,利用python做transform的情况下,hive会认为transform的结果是string,无论是采用transform之后直接插入表还是采用将transform结果放在hdfs上再load回去都会有异常。使用存储到本地再load回去又浪费时间,所以可以把transform的结果包装在子查询中,外层用str_to_map转换再插回表。
但是一定要注意:str_to_map会把string中的'\'进行转义,到最后会让这条记录无比庞大,说明如下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值