我在AWS Athena中创建了外部表以查询S3数据,但是路径中有1000多个文件。因此,我需要在表格中显示记录的相应文件名作为列。
select file_name , col1 from table where file_name = "test20170516"
简而言之,我需要知道在AWS Athena Presto中与INPUT__FILE__NAME(hive)等效的内容,或任何其他实现相同目的的方法。
我在AWS Athena中创建了外部表以查询S3数据,但是路径中有1000多个文件。因此,我需要在表格中显示记录的相应文件名作为列。
select file_name , col1 from table where file_name = "test20170516"
简而言之,我需要知道在AWS Athena Presto中与INPUT__FILE__NAME(hive)等效的内容,或任何其他实现相同目的的方法。
select "$path" from table
如果你只需要文件名,可以使用regeexp_extract()
进行提取。
要在Athena中使用它在"$path"
上,你可以这样做:
SELECT regexp_extract("$path", '[^/]+$') AS filename from table;
如果您需要没有扩展名的文件名,可以执行以下操作:
SELECT regexp_extract("$path", '[ \w-]+?(?=\.)') AS filename_without_extension from table;
这是关于Presto正则表达式函数的文档。