Слияние схем не работает, когда пути s3 заданы явно - PullRequest
0 голосов
/ 09 октября 2019

Когда пути 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 будет присутствовать в моем фрейме данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...