将查询语句得到的数据,存放到hive表的map字段中,
在一般的查询语句里,返回的字段都是String类型, 直接insert到hive表的map字段会报类型错误。 去咨询了大数据的同学,也不知道该怎么弄。
从网上搜到的,都是将主句转存为文件,再把文件导入到map字段。
实际只需要一个函数就可以。 str_to_map.
insert overwrite table ${tablename} partition (pt='${yesterdayStr}')
SELECT '2017-08-09', 'testkey', str_to_map(concat('crowd:', m0.o_id,'&clicker:',m0.g_id,'&sen:',m0.c_id,'&o_cnt:',m0.c_mob), '&', ',')
FROM dwd_info m0
WHERE pt='2017-08-24' limit 100。
以上语句,可就可以直接将查询结果,转存到Map字段。