2017-05-16 17 views
6

S3 verilerini sorgulamak için AWS Athena'da oluşturulmuş dış tablolarım var ancak konum yolunun 1000'den fazla dosyaya sahip olması için kaydın karşılık gelen dosya adına ihtiyacım var. Tablodaki sütun. AWS Athena Presto veya aynı ulaşmak için başka şekillerde denkAWS Athena dış tablolarında giriş dosyası adı nasıl sütun alınır

seçme dosya_adı, dosya_adı = "test20170516" Kısacası

ben INPUT__FILE__NAME (kovanını) bilmek gerekir tablodan col1.

cevap

13

Bunu, $ path pseudo sütunuyla yapabilirsiniz.

select "$path" from table 
+0

Bilgi için çok teşekkürler. Bir süre aradığım ve bulamadığınız için bu konuyla ilgili herhangi bir bağlantıyı bana bildirebilirsiniz. – Rajeev

+1

Bir süre sonra aşağıdaki github sorununu buldum. https://github.com/prestodb/presto/issues/5486 –

+2

Tekrar teşekkürler. Bunun farkında olduğun başka herhangi bir sözde sütun var mı? – Rajeev

5

Sadece dosya adına ihtiyacınız varsa, regeexp_extract() ile ayıklayabilirsiniz. Böyle bir şey yapabiliriz "$path" üzerinde Athena kullanmak için

: Eğer uzantısı olmadan dosya adı gerekiyorsa

SELECT regexp_extract("$path", '[^/]+$') AS filename from table; 

, yapabileceğiniz: Burada

SELECT regexp_extract("$path", '[ \w-]+?(?=\.)') AS filename_without_extension from table; 

belgelerdir Presto Regular Expression Functions

+0

Dosya adını almak için split_part ("$ PATH", "/", 7) kullanıyordum, seninki daha jenerik olsa da. Teşekkürler. – Rajeev

+0

Bu harika. Teşekkür ederim! – PubNub

İlgili konular