hive函数get_json_object解析mongo数据_id及UTC时间问题
数据:
{
"_id":{"$oid":"5d311b24af7ad65b9a14adba"},
"datetime":{"$date":"2019-07-19T01:21:40.638Z"
}
1、_id的问题:
正常们使用get_json_object的时候是这样的:
get_json_object(json,'$._id.$oid') as id
但是取出来的字段发现是null值。
问题原因:
解析时识别不了$符号
采取的方法是:
get_json_object(regexp_replace(get_json_object(json,'$._id'), '\\$', ''),'$.oid') as id
这样就可以取出id了。
2、UTC时间问题:
采取的方法:
from_unixtime(unix_timestamp(regexp_replace(regexp_replace(get_json_object(regexp_replace(get_json_object(json,'$.datetime'), '\\$', ''),'$.date'),'T',' '),'Z',' '))+28800,'yyyy-MM-dd HH:mm:ss') as datetime