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

У нас есть хранилище BLOB-объектов, куда в течение дня поступает множество файлов.У меня есть записная книжка Databricks, которая запускается в пакетном режиме, читает список каталогов, зацикливает файлы и отправляет их в Azure SQLDW.Works.После этого обработанные файлы перемещаются в архив.Но процесс зацикливания списка файлов, добавления каждого из них и добавления имени файла в столбец идет немного медленнее.Мне было интересно, можно ли это сделать за 1 прогон.Можно загрузить сразу все csv, но как запомнить соответствующие имена файлов в столбце.

У кого-нибудь есть предложения?

1 Ответ

0 голосов
/ 02 декабря 2018

Есть несколько способов, о которых я могу подумать

1. spark.read.format("csv").load("path").select(input_file_name())

2. spark.sparkContext.wholeTextFiles("path").map{case(x,y) => x} <-- avoid if data is huge

Оба предоставляют все имена файлов по заданному пути. Где первый основан на DF, может быть быстрее, чем более поздний СДР.

Примечание. Не проверялось решение.

...