Как добавить названия папок в каждую строку в спарк - PullRequest
0 голосов
/ 03 июля 2018

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

Folder1 : 1.csv, 2.csv, 3.csv
Folder2: 4.csv, 5.csv, 6.csv 

вывод должен включать все файлы csv с добавленным столбцом, содержащим папку 1 и папку 2

1 Ответ

0 голосов
/ 03 июля 2018

Пакет org.apache.spark.sql.functions имеет функцию input_file_name, которая добавляет столбец с именем соответствующего файла. Вы можете использовать его в операции select, например:

import org.apache.spark.sql.functions.input_file_name
val df = spark.read.format("csv").option("header", "true")
    .load("directory")
    .select(input_file_name, 'some-column-name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...