gpt4 book ai didi

json - 来自字符串字段的 AWS Athena json_extract 查询返回空值

转载 作者:行者123 更新时间:2023-12-01 13:19:34 25 4
gpt4 key购买 nike

我在雅典娜有一张这种结构的 table

CREATE EXTERNAL TABLE `json_test`(
`col0` string ,
`col1` string ,
`col2` string ,
`col3` string ,
`col4` string ,
)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
'quoteChar'='\"',
'separatorChar'='\;')

像这样的 Json 字符串存储在“col4”中:
{'email': 'test_email@test_email.com', 'name': 'Andrew', 'surname': 'Test Test'}

我正在尝试进行 json_extract 查询:
SELECT json_extract(col4 , '$.email') as email FROM "default"."json_test"

但查询返回空值。

任何帮助,将不胜感激。

最佳答案

JSON 需要使用双引号 ( " ) 来封闭值。

相比:

presto> SELECT json_extract('{"email": "test_email@test_email.com", "name": "Andrew"}' , '$.email');
_col0
-----------------------------
"test_email@test_email.com"


presto> SELECT json_extract('{''email'': ''test_email@test_email.com'', ''name'': ''Andrew''}', '$.email');
_col0
-------
NULL

(注意: '' 内部 SQL varchar 文字表示构造值中的单个 ',因此这里的文字与问题中的格式相同。)

如果您的字符串值是“带单引号的 JSON”,您可以尝试使用 replace(string, search, replace) → varchar 修复它。

关于json - 来自字符串字段的 AWS Athena json_extract 查询返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50906730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com