Hive 从Athena中的json_数组中提取值

Hive 从Athena中的json_数组中提取值,hive,presto,amazon-athena,Hive,Presto,Amazon Athena,我有如下JSON数据: [所有:{{所有:{所有:{{所有:{{所有:{{所有:{{所有:{{结束:22:00,开始:11:00,开始:11:00,开始:11:00},星期五:2},{所有:{{{所有:{所有:{所有:{{结束:22:22:00,开始:11:00,开始:11:00},星期星期一,星期五:11:00,星期五:00,星期五:22:00,开始:22:00,开始:22:00,开始:22:00,开始:00,开始:11:00,开始:00,开始:11:00},星期日:11:00,星期五:00,

我有如下JSON数据:

[所有:{{所有:{所有:{{所有:{{所有:{{所有:{{所有:{{结束:22:00,开始:11:00,开始:11:00,开始:11:00},星期五:2},{所有:{{{所有:{所有:{所有:{{结束:22:22:00,开始:11:00,开始:11:00},星期星期一,星期五:11:00,星期五:00,星期五:22:00,开始:22:00,开始:22:00,开始:22:00,开始:00,开始:11:00,开始:00,开始:11:00},星期日:11:00,星期五:00,星期五:11:00,星期五,星期五:5:5},},{{{{{{{{{{所有:{{所有:{所有:{{{所有:{{{所有:{{{{{{{{[星期一:00},星期五:7}]

我需要提取dayOfWeek、start和end的值 尝试了建议的解决方案,但没有成功

预期结果:

dayOfWeek   start   end
1   11:00   22:00
2   11:00   22:00
3   11:00   22:00
4   11:00   22:00
5   11:00   22:00
6   11:00   22:00
7   11:00   22:00

您可以使用以下查询。已通过版本0.172验证

以数据值作为值 [所有:{{所有:{所有:{所有:{{所有:{所有:{{所有:{{结束:22:00,开始:11:00,开始:11:00,开始:11:00,开始:11:00,星期日:2},{所有:{{所有:{{所有:{{结束:22:22:00,开始:11:00,开始:11:00},星期日:11:00,星期日:11:00,星期日:00,星期日:1:00,星期日:1:00,星期日:22:00,开始:22:00,开始:22:00,开始:11:00,开始:00,开始:11:00,开始:11:00,开始:00,星期日:11:00,星期日:11:00,星期日:5:5:5},{{{所有:{所有:{{所有:{所有:{所有:{所有:{所有:{{{{{{{{11:00},星期一:7}] , 解析DC1为 选择castjson_parsevalue作为arrayjson 从数据 选择 json_extract_scalarjson1,'$.dayOfWeek'作为dayOfWeek ,json_extract_scalarjson1,'$.all.start'作为开始 ,json_extract_scalarjson1,'$.all.end'作为结束 从已解析的,unnestc1作为tjson1
您可以使用以下查询。已通过版本0.172验证

以数据值作为值 [所有:{{所有:{所有:{所有:{{所有:{所有:{{所有:{{结束:22:00,开始:11:00,开始:11:00,开始:11:00,开始:11:00,星期日:2},{所有:{{所有:{{所有:{{结束:22:22:00,开始:11:00,开始:11:00},星期日:11:00,星期日:11:00,星期日:00,星期日:1:00,星期日:1:00,星期日:22:00,开始:22:00,开始:22:00,开始:11:00,开始:00,开始:11:00,开始:11:00,开始:00,星期日:11:00,星期日:11:00,星期日:5:5:5},{{{所有:{所有:{{所有:{所有:{所有:{所有:{所有:{{{{{{{{11:00},星期一:7}] , 解析DC1为 选择castjson_parsevalue作为arrayjson 从数据 选择 json_extract_scalarjson1,'$.dayOfWeek'作为dayOfWeek ,json_extract_scalarjson1,'$.all.start'作为开始 ,json_extract_scalarjson1,'$.all.end'作为结束 从已解析的,unnestc1作为tjson1
通过附加id列,了解如何编写查询。预计:id,DayOWeek,DayOWeek,开始,以dataid结束,以dataid结束,以价值作为价值“1558”的价值作为价值“1558”,“[{所有:{所有:{结束:21:00,开始:11:00,DayOWeek,开始,以11:00,开始:11:00,开始:11:00,开始:11:00,开始,开始:11:00,开始:11:00,开始:11:00,开始:1},,,,,,{,{,{所有:{所有:{所有:{所有:{所有:{所有:{所有:{所有:{所有:{所有:{所有:{所有:{结束:{结束:结束:结束:结束:结束:结束:结束:结束:结束:结束:结束:结束:结束:21:21:21:00,21:00,开始:21:00,开始:00,开始:00,{全部:{结束:22:00,开始:15:00},dayOfWeek:3},{all:{end:22:00,start:15:00},dayOfWeek:4}]'SELECT id,value FROM data您只需将id列传递给后续的SELECT查询。使用dataid,value作为值“1558”,“[{all:{end:21:00,start:11:00},dayOfWeek:1},{all:{end:21:00,start:11:00},dayOfWeek:2}','1559',{all:{end:22:00,dayOfWeek:00,start:1}{结束:22:00,开始:11:00},星期二:2}],parsedid,c1作为SELECT id,castjson_parsevalue作为arrayjson从数据选择id,json_extract_scalarjson1,$.dayOfWeek作为dayOfWeek,json_extract_scalarjson1,$.all.start作为start,json_extract_scalarjson1,$.end作为解析后的end,unnestc1作为tjson1,还有一个额外的id列,如何编写查询。预期:id,dayof[所有:{所有:{所有:{所有:{结束:21:00,开始:11:00},DayOwWeek:1:1,DayOwWeek:1},{所有:{所有:{结束:21:00,开始:21:00,开始:21:00,开始:11:00,开始:11:00,开始:11:00,结束以dataid,结束以数据为结束,以dataid,价值作为价值为价值“1558”的价值,以ID,价值作为价值为价值“1558”,价值作为价值为“1558,“1558,“1558”,“1559”,“1559”,“[所有:[所有:[所有:[所有:[所有:{所有:{{所有:{{所有:{所有:{所有:{所有:{截止:结束:结束:结束:22:22:22:00,开始:22:00,开始:00,11:00,开始:00,开始:00,开始时间:22:00,开始时间:15:00},星期三:3},{所有:{end:22:00,start:15:00},dayOfWeek:4}'选择id,数据中的值您只需将id列传递给后续的SELECT查询。使用dataid,值作为值“1558”,“[{all:{end:21:00,start:11:00},dayOfWeek:1},{all:{end:21:00,start:11:00},dayOfWeek:2}',1559',{all:{end:22:00,start:11:00},dayOfWeek:1},dayOfWeek:00},dayOfWeek:00],parsedid,c1作为SELECT id,castjson_parsevalue作为arrayjson从数据选择id,json_extract_scalarjson1,'$.dayOfWeek'作为dayOfWeek,json_extract_scalarjson1,'$.all.end'作为解析的结束,unnestc1作为tjson1