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()
で抽出できます。
"$path"
のAthenaで使用するには、次のようなことができます。
SELECT regexp_extract("$path", '[^/]+$') AS filename from table;
拡張子のないファイル名が必要な場合は、次を実行できます。
SELECT regexp_extract("$path", '[ \w-]+?(?=\.)') AS filename_without_extension from table;
Presto Regular Expression Functions に関するドキュメントはこちら