2016-10-19 8 views
0

Я пишу в ведро Amazon S3, но я бы хотел, чтобы файл имел более регулярное, удобное для пользователя имя, чем part-r-0-8asdifafasd98fu.csv Есть ли опция или другой способ для этого ?Сохраните файл DataFrameWriter в удобочитаемом формате

val savePath = "s3a://<...>" 

val pdata = sqlContext.read.parquet(readPath + "/*") 

val writer: DataFrameWriter[Row] = pdata.coalesce(1).write 

writer.format("csv") 
.mode("overwrite") 
.option("header", "true") 
.option("delimiter", "|") 
.option("nullValue", "") 
.option("codec", "org.apache.hadoop.io.compress.GzipCodec") 
.save(savePath) 
+0

Если ваш фреймворк данных подходит для драйвера в 1 partition, ему не нужно записывать данные на диск, что означает, что вы можете использовать aws s3 api для записи на s3 – eliasah

+0

Спасибо eliasah; Я использую пользовательский интерфейс Qubole для этого – sqldoug

+0

coalesce (1), чтобы создать 1 раздел - это анти-шаблон в искры. – eliasah

ответ

1

Нет способа получить более читаемый для человека формат. Каждый раздел записывает ведро S3 в отдельный файл детали. В hadoop мы обычно думаем о наборе данных как каталоге, и все файлы в этом каталоге не относятся к набору данных.