在 Presto SQL 或 Scala 中使用 JSON_EXTRACT 或 JSON_EXTRACT_SCALAR

问题描述 投票:0回答:0
id 价值
123 {78kfcX={“发送”:77,“响应”:31,“无响应”:31},97Facz={“已发送”:45,“响应”:31,“无响应”:31}}
333 {5mdzrZ={“发送”:1,“响应”:1,“NoResponset”:1}}

鉴于上表,我正在尝试提取“发送”值......如果有多个发送值,那么我想取最大值。

我尝试在 SQL 中使用 json_extract、json_extract_scalar、json_parse 和其他多个函数,但似乎没有任何效果。我在所有尝试中一直得到 NULL 值。

上面例子的预期结果应该是:

id 已发送
123 77
333 1

我认为解决这个问题的一种方法是首先执行 CROSS JOIN UNNEST 以将值列拆分为 78kfcX、97Facz、5mdzrZ id。然后从那里提取发送的值并取最大值,按 id 列分组。

sql scala apache-spark presto
© www.soinside.com 2019 - 2024. All rights reserved.