#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 и распределенных вычислений.