value
{"$screen_width":375,"$app_version":"2.5.0"}
Предположим, у меня есть таблица, показанная выше.Значение "2.5.0"
- это то, что я хочу.Я пытаюсь использовать get_json_object
, но это не удается.Поскольку путь "$app_version"
включает знак $
, а Hive рассматривает его как знак корневого каталога.
Я пробую несколько способов кода, но все они терпят неудачу и возвращают NULL
.
select get_json_object(value,"$.$app_version")
select get_json_object(value,"$.\\$app_version")
select get_json_object(value,"$.\$app_version")
select get_json_object(value,"$..app_version")
Кто-нибудь из опытных пользователей Hive знает, как это исправить?
Временно, я использую регулярное выражение, чтобы решить эту проблему.
select
regexp_extract(
properties
,'\\"\\$os_version\\":\\"[\\d?]+\\.[\\d?]+\\.[\\d?]+\\"'
,0
)
,properties
from opd.test_json_object
Однако мне любопытно, что здесь нет возможности использовать get_json_object