Узнайте имя целевого csv-файла для вызова Spark DataFrame.write.csv()

#apache-spark #hadoop #pyspark

Вопрос:

В сеансе pyspark, когда я делаю это:

 df = spark.read.parquet(file)
df.write.csv('output')
 

он создает каталог, называемый output с кучей файлов, один из которых является целевым csv-файлом с непредсказуемым именем, например: part-00006-80ba8022-33cb-4478-aab3-29f08efc160a-c000.csv
Есть ли способ узнать, каково имя выходного файла после .csv() вызова?

Ответ №1:

Когда вы читаете файл паркетной доски во фрейме данных, в нем будут некоторые разделы, поскольку мы используем распределенное хранилище здесь. Аналогично, когда вы сохраняете этот фрейм данных в виде файла csv, он будет сохранен распределенным образом в зависимости от количества разделов, которые имел фрейм данных.

Путь, который вы указали во время написания файла csv, создаст папку с таким именем, вот что произойдет, и тогда у вас будет несколько файлов разделов внутри этой папки. Каждый файл будет содержать некоторую часть данных, и когда вы объедините все эти разделы файла, вы получите все содержимое csv-файла.

Кроме того, если вы прочтете этот путь к папке, вы сможете увидеть все содержимое csv-файла. Это поведение по умолчанию для работы spark и распределенных вычислений.