我在 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) 等效项或任何其他实现相同目的的方法。
您可以使用 $path 伪列来执行此操作。
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;