我正在尝试一个非常基本的Hive查询。我试图从数据集中提取一个json字段,但我总是
\不
但是对于json字段,可以使用一些\u字符串
我的问题是:
WITH dataset AS (
SELECT
CAST(
'{ "traceId": "abc", "additionalData": "{\"Star Rating\":\"3\"}", "locale": "en_US", "content": { "contentType": "PB", "content": "T S", "bP": { "mD": { "S R": "3" }, "cType": "T_S", "sType": "unknown-s", "bTimestamp": 0, "title": "T S" } }
}' AS STRING) AS some_string
)
SELECT some_string, get_json_object(dataset.some_string, '$.traceId') FROM dataset
问:如何在这里获取json字段?
1条答案
按热度按时间hfwmuf9z1#
问题出在反斜杠上。单个反斜杠被视为“的转义字符,并由配置单元删除:
当您有两个反斜杠时,hive会删除一个:
有两个反斜杠,效果很好:
您还可以轻松地删除additionaldata中{和}之后的双引号:
退货: