我想将Athena SQL create table语句中的位置值设置为单个CSV文件,因为我不想查询路径中的每个文件.我可以设置并成功查询s3目录(对象)路径和该路径中的所有文件,但不能查询单个文件.Is setting a single file as the location supported?

成功查询路径中的CSV文件:

LOCATION 's3://my_bucket/path/'

返回零结果:

LOCATION 's3://my_bucket/path/filename.csv.gz'

Create table语句:

CREATE EXTERNAL TABLE IF NOT EXISTS `default`.`my_db` (
    `name` string,
    `occupation` string,    
    )
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
    WITH SERDEPROPERTIES (
    'field.delim' = ','
   ) LOCATION 's3://bucket-name/path/filename.csv.gz'
   TBLPROPERTIES ('has_encrypted_data'='false');

我有read this Q&Athis,但它似乎没有解决相同的问题.

非常感谢.

推荐答案

您可以在查询时try 在WHERE条件中添加该特定对象的路径:

SELECT * FROM default.my_db
WHERE "$path" = 's3://bucket-name/path/filename.csv.gz'

Sql相关问答推荐

根据内容确定要插入的列

当编号和版本的唯一状态更改时报告

SQL查询以创建手头的流动余额?

判断Pyspark生成的SQL查询

无效和不匹配的计数

如何在presto/SQL中使用两个数组列创建(分解)单独的行

查询页面推荐

如何解决错误;ORA-00911:无效字符;在果朗?

使用 Oracle SQL Developer 将不同的列值转换为列会导致错误 ORA-01489

JSON_VALUE 不适用于提取的 json 中的嵌套路径

返回给定日期后的第 4 个工作日(不包括公众假期)

SQL Server中使用min()和max()从选定的特定值id表中删除不必要的时间

如何在sparksql查询中使用日期值?

SQL中如何转置表格 UNPIVOT是唯一的 Select 吗?

每组使用平均值来填补缺失值的SQL

根据潜在空值的条件对记录进行计数

忽略与给定列匹配的行的 LAG 函数

SQL日期比较用例;月初至今的报告

使用 SAVE TRANSACTION 时 BEGIN 和 COMMIT 语句的数量不匹配

SQL 查询以填充单个列中的所有值