在 S3 中的 Presto 中查询 JSON 文件
Query JSON file in Presto in S3
我在 S3 中有一个文件,在 EMR 上有 Presto 运行。我知道我可以使用 Json_extract 来阅读 json。
我是 运行 以下查询,但是,我一直看到 null 而不是正确的值。
select json_extract('s3a://random-s3-bucket/analytics/20210221/myjsonfile.json', '$.dateAvailability')
我看到了这个输出
不确定我的语法是否有误?想法?
json_extract()
对保存在内存中的 JSON 标量值进行操作。它不会从外部位置加载数据。有关使用示例,请参阅文档页面。
为了使用 Trino (formerly known as Presto SQL) 查询 JSON 文件,您需要将其映射为具有 JSON 格式的 table,如下所示:
CREATE TABLE my_table ( .... )
WITH (
format = 'JSON',
external_location = 's3a://random-s3-bucket/analytics/20210221'
);
在 Hive connector documentation 中查看更多信息。
如果您需要一个工具来帮助您创建 table 语句,试试这个:https://www.hivetablegenerator.com
来自页面:
Easily convert any JSON (even complex Nested ones), CSV, TSV, or Log
sample file to an Apache HiveQL DDL create table statement.
我在 S3 中有一个文件,在 EMR 上有 Presto 运行。我知道我可以使用 Json_extract 来阅读 json。
我是 运行 以下查询,但是,我一直看到 null 而不是正确的值。
select json_extract('s3a://random-s3-bucket/analytics/20210221/myjsonfile.json', '$.dateAvailability')
我看到了这个输出
不确定我的语法是否有误?想法?
json_extract()
对保存在内存中的 JSON 标量值进行操作。它不会从外部位置加载数据。有关使用示例,请参阅文档页面。
为了使用 Trino (formerly known as Presto SQL) 查询 JSON 文件,您需要将其映射为具有 JSON 格式的 table,如下所示:
CREATE TABLE my_table ( .... )
WITH (
format = 'JSON',
external_location = 's3a://random-s3-bucket/analytics/20210221'
);
在 Hive connector documentation 中查看更多信息。
如果您需要一个工具来帮助您创建 table 语句,试试这个:https://www.hivetablegenerator.com
来自页面:
Easily convert any JSON (even complex Nested ones), CSV, TSV, or Log sample file to an Apache HiveQL DDL create table statement.