问题描述
我有一个包含 24 个 JSON 的变体表,如下所示(每行一个):
{
"context": "marketplace","metadata": {
"app_version": "1.0.4 (166)",},"params": {
"filter": {
"brands": [],"categories": [
"f28c7c9f-09ae-4218-821a-bec344998289"
],"manufacturers": [],"page": 1,"product_name": "","page": "product_list","results": 3
},"user_id": "6443a2db-4526-4fc5-8084-290fc78e5336"
}
我希望所有东西都成排爆炸。我已经设法拥有所有东西,但可以根据需要使用代码进行过滤:
SELECT data:event::string,data:user_id::string,data:metadata.app_version::string,data:context::string,data:params.page::string,data:params.filter.page::string,data:params.results::string
FROM ods.stg_tanimis_events
列表品牌、类别和制造商可以为空,但如果是这种情况,我需要一个空值。我想要一个包含以下列的表格:
event,user_id,app_version,context,param_page,filter_page,results,manufacturer,brand,category
我尝试了几次横向展平但没有成功:
select * FROM table,lateral flatten (data:params:filter:categories) j2;
select * FROM table,lateral flatten (data:params:filter.brands) j1
select * FROM table,lateral flatten (data:params:filter:brands) j1,lateral flatten (data:params:filter:categories) j2;
select user_id,filter,flat.*
from table,lateral flatten(parse_json(filter)) flat;
WITH j as (
SELECT *
FROM table,lateral flatten(data:params:filter))
SELECT *
from j,lateral flatten (j.value) j2;
无论哪种方式,我都会得到 8 行或 0 行,或错误。我怎么能做到?谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)