gpt4 book ai didi

hadoop - 从 JSONserde 中的 JSON 数组访问 sibling 的值?

转载 作者:可可西里 更新时间:2023-11-01 16:38:51 26 4
gpt4 key购买 nike

给予这是我的 JSON

...
"actions": [
{
"action_type": "link_click",
"value": "1"
},
{
"action_type": "page_engagement",
"value": "1"
},
{
"action_type": "post_engagement",
"value": "1"
},
.....
]
}
...

我想将每个action_type 的值映射到我的外部表的特定列

CREATE EXTERNAL TABLE raw_marketing_other.facebook_ad_cost_dtl_hrly (
...
linkClick : int
pageEngagement : int
...
)

例如,linkClick 列将具有从该 json 对象派生的值 1

问题这在 serdeProperties 的映射中是否可行?像这样。

create table ...
...
ROW FORMAT serde 'org.openx.data.jsonserde.JsonSerDe'
WITH serdeproperties(
"mapping.linkClick" = "actions[action_type="link_click].value",
...

注意:哪里的 actions[action_type="link_click]"是为了返回具有该条件的 json 对象的第一次出现?

如果无法通过自定义映射实现,那么是否有其他解决方案?

引用资料: https://github.com/rcongiu/Hive-JSON-Serde

最佳答案

我会按原样加载数据,然后使用 get_json_object UDF 查询它。

沿着这些线的东西:

SELECT *
FROM my_table
WHERE get_json_object(json_column, '$.actions.action_type') = 'link_click';

关于hadoop - 从 JSONserde 中的 JSON 数组访问 sibling 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45846908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com