Вам не нужно перезапускать сканер, если файлы находятся в одном месте.Например, если ваша папка данных s3://bucket/data/<files>
, вы можете добавить в нее новые файлы и запустить задание ETL - новые файлы будут автоматически выбраны.
Однако, если данные поступают в новые разделы (подпапки), такие как s3://bucket/data/<year>/<month>/<day>/<files>
, вам нужно либо запустить сканер, либо выполнить MSCK REPAIR TABLE <catalog-table-name>
в Афине, чтобы зарегистрировать новые разделы в каталоге Glue перед запуском задания Glue ETL..
Когда данные загружаются в DynamicFrame или DataFrame spark, вы можете применить некоторые фильтры для использования только необходимых данных.Если вы все еще хотите работать с именами файлов, вы можете добавить его в виде столбца, используя функцию input_file_name spark, а затем применить фильтрацию:
from pyspark.sql.functions import col, input_file_name
df.withColumn("filename", input_file_name)
.where(col("filename") == "your-filename")
Если вы контролируете, как поступают файлы, я быПредложите поместить их в разделы (подпапки с указанием даты, т.е. /data/<year>/<month>/<day>/
или просто /data/<year-month-day>/
), чтобы вы могли извлечь выгоду из использования предикатов pushdown в AWS Glue