Загрузка файла в спарк с использованием разделов по входным папкам - PullRequest
0 голосов
/ 16 сентября 2018

У нас есть входные файлы (небольшие файлы .gz), организованные в структуре папок ниже.

USER1
----YYYY=1
    ----MM=1   
        ----DD=11
            ----f1.gz
            ----f2.gz 
        ----DD=2
            ----f1.gz
            ----f2.gz
            ----f3.gz  
    ----MM=2   
        ----DD=1
            ----f1.gz
            ----f2.gz 
            ----f3.gz
        ----DD=2
            ----f1.gz
            ----f2.gz  
USER2
----YYYY=2
    ----MM=1
    ...

Мы должны обрабатывать вышеуказанные данные на пользователя, что означает, что мы хотим, чтобы данные одного пользователя в разные даты входили в единицураздел, который в свою очередь будет обрабатываться одним рабочим.(Надеюсь, наше предположение верно).

Так можно ли загрузить вышеуказанный набор файлов в спарк RDD таким образом, чтобы RDD был разделен на папку USER?По сути, мы хотим избежать операции сокращения пользователем USER после загрузки данных.

Например, если мы хотим анализировать пользовательские данные от YYYY = 1 / MM = 2 / DD = 1 до YYYY = 2 / MM = 1 /DD = 3, тогда раздел RDD может выглядеть следующим образом:

Раздел RDD 1 USER1 - Все файлы в диапазоне от YYYY = 1 / MM = 2 / DD = 1 до YYYY = 2 / MM = 1 / DD = 3

RDD Partition 2 USER2 - все файлы в диапазоне от YYYY = 1 / MM = 2 / DD = 1 до YYYY = 2 / MM = 1 / DD = 3

RDD Partition 3 ... и так далее

Таким образом, если общее количество пользователей 10 КБ, будет создано 10 КД разделов RDD.

Можем ли мы достичь выше, используя текущую структуру папок?Или нам нужна другая структура папок для достижения того же?Или структура папок не имеет значения?

Является ли сокращение по пользователю, единственная возможность объединить все пользовательские данные в один раздел.

Примечание. Данные находятся в корзине S3.

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