我在 S3 中有一个文件,Presto 在 EMR 上运行。我看到我可以使用 Json_extract 来读取 json。
我正在运行以下查询,但是,我一直看到 null 而不是正确的值。
select json_extract('s3a://random-s3-bucket/analytics/20210221/myjsonfile.json', '$.dateAvailability')
我看到这个输出
不确定我的语法是否错误?想法?
我在 S3 中有一个文件,Presto 在 EMR 上运行。我看到我可以使用 Json_extract 来读取 json。
我正在运行以下查询,但是,我一直看到 null 而不是正确的值。
select json_extract('s3a://random-s3-bucket/analytics/20210221/myjsonfile.json', '$.dateAvailability')
我看到这个输出
不确定我的语法是否错误?想法?
如果你需要一个工具来帮助你创建表语句,试试这个:https ://www.hivetablegenerator.com
从页面:
轻松将任何 JSON(甚至是复杂的嵌套文件)、CSV、TSV 或日志示例文件转换为 Apache HiveQL DDL 创建表语句。
json_extract()
对保存在内存中的 JSON 标量值进行操作。它不会从外部位置加载数据。有关使用示例,请参阅文档页面。
为了使用 Trino(以前称为 Presto SQL)查询 JSON 文件,您需要将其映射为 JSON 格式的表,如下所示:
CREATE TABLE my_table ( .... )
WITH (
format = 'JSON',
external_location = 's3a://random-s3-bucket/analytics/20210221'
);
在Hive 连接器文档中查看更多信息。