在Athena
中,我想根据查询结果创建一个表,但每个查询结果都包含2 files
,".csv"
和".csv.metadata"
。所有这些文件都在我的表中,元数据构成了表looks messy
。有没有办法ignore
这些".csv.metadata"
个文件,只显示".csv"
个文件的数据?
任何建议或代码段都将不胜感激。
谢谢。
答案 0 :(得分:4)
无法做到。来自documentation:
Athena读取您在CREATE TABLE语句中指定的Amazon S3位置中的所有文件,并且不能忽略前缀中包含的任何文件。创建表时,仅在Amazon S3路径中包含您希望Athena读取的文件。使用AWS Lambda函数扫描源位置中的文件,删除所有空文件,并将不需要的文件移动到其他位置。
答案 1 :(得分:2)
在文件名的开头添加下划线将导致Athena忽略该文件。例如: mpg cyl row_num
1 21.0 6 1
2 21.0 6 2
3 22.8 4 3
4 21.4 6 4
5 18.7 8 5
6 18.1 6 6
答案 2 :(得分:1)
一种可能满足您需要的简单变通办法是创建一个Athena view ,它将过滤表中的“混乱”。然后,您可以简单地使用视图而不是表本身。
答案 3 :(得分:0)
您可以像这样排除输入文件:
select * from your_table where "$PATH" is not like '%metadata'