Ответ 1
Если вам нужен один файл, вам нужно сделать coalesce
в один раздел перед вызовом write, поэтому:
unzipJSON.coalesce(1).write.mode("append").json("/home/eranw/Workspace/JSON/output/unCompressedJson.json")
Лично я нахожу довольно раздражающим, что количество выходных файлов зависит от количества разделов, которые у вас есть до вызова write
- особенно если вы делаете write
с partitionBy
- но, насколько я знаю, в настоящее время нет другого способа.
Я не знаю, есть ли способ отключить файлы .crc - я не знаю одного - но вы можете отключить файл _SUCCESS, установив следующее в конфигурации hadoop контекста Spark.
sc.hadoopConfiguration.set("mapreduce.fileoutputcommitter.marksuccessfuljobs", "false")
Обратите внимание, что вы также можете отключить генерацию файлов метаданных с помощью:
sc.hadoopConfiguration.set("parquet.enable.summary-metadata", "false")
По-видимому, генерация файлов метаданных занимает некоторое время (см. это сообщение в блоге), но на самом деле это не так важно (согласно this). Лично я всегда их отключил, и у меня не было проблем.