Я заметил, что есть проблемы при чтении секционированных данных из S3 с использованием Spark. У меня есть данные, которые хранятся в S3 и разбиты по столбцам даты (год, месяц, день, час), но, в отличие от данных, записываемых Spark в S3, не имеют префиксов столбцов.
Я мог бы прочитать данные, используя метод spark.read.parquet('s3a://{bucket_name}/*/*/*/*/*.parquet)
, однако, когда я использую функцию input_file_name()
из пакета pyspark.sql.functions
, он возвращает пустой результат. Это поведение исправлено, когда я удаляю последний сегмент из метода чтения, т.е. spark.read.parquet('s3a://{bucket_name}/*/*/*/*)
. Что вызывает такое поведение и ожидается ли это, но не документировано, или я неправильно читаю данные?