Когда пути s3 явно указаны для чтения паркетных файлов, которые не находятся в одном и том же каталоге, схемы секционирования не выводятся, и, следовательно, я не получаю секционированный столбец в моем искровом фрейме данных.
У меня естьпопробовал параметр объединить схему = True при чтении файлов паркета, но это, кажется, работает, если задана корневая папка, а не явные пути.
Моя текущая структура каталогов s3.
bucket
folder1
.....|- col=val1/file1.parquet
.....|- col=val2/file2.parquet
.....|- col=val3/file3.parquet
.....
folder2
.....|- col=val1/file4.parquet
.....|- col=val2/file5.parquet
.....|- col=val3/file6.parquet
.....
.....
Я хочупрочитать все файлы, которые имеют значения val1 и val2 для ключа col. Следовательно, я получаю s3 пути к ним в виде списка и читаю их явно.
s3paths = ['s3://bucket/folder1/col=val1/file1.parquet',
's3://bucket/folder1/col=val2/file2.parquet',
's3://bucket/folder1/col=val1/file4.parquet',
's3://bucket/folder2/col=val2/file5.parquet']
df = spark.read.parquet(*s3paths)
# another option
df = spark.read.options("mergeSchema", True).parquet(*s3paths)
Я могу прочитать файлы, но столбец col не отображается в кадре данных spark.
Я ожидаю, что столбец col будет присутствовать в моем фрейме данных.