Все авторы данных с искровыми данными (df.write .___) не записываются в один файл, а пишут один фрагмент на раздел. Я полагаю, что вы получите каталог под названием
df.coalesce(1).write.csv("dbfs:/mnt/mount1/2016//product_profit_weekly
и один файл внутри называется
part-00000
В этом случае, вы делаете что-то, что может быть весьма неэффективным и не очень «Спарки» - вы объединяют все разделы файловой системы в один, что означает, что ваша задача фактически не выполняется параллельно!
Другая модель. Чтобы воспользоваться преимуществами всей распараллеливания искр, что означает, что НЕ СКРЫВАЙТЕСЬ и пишите параллельно какой-либо директории.
Если у вас есть 100 разделов, вы получите:
part-00000
part-00001
...
part-00099
Если вам нужно все в одном плоском файле, написать небольшую функцию, чтобы объединить его после того, как факт. Вы можете либо сделать это в Скале, или в Баш с:
cat ${dir}.part-* > $flatFilePath
Хорошо, но что, если у меня есть один файл, и я хочу, чтобы определить имя для него, например: report.csv, а затем записать его? – sanaz
@ zero323 Я был бы признателен за вашу помощь – sanaz
Если вы действительно заинтересованы в одном файле, вы можете сначала сделать что-то вроде «собрать» фреймворк данных и использовать стандартные java-файлы. Они будут создавать плоский файл, где бы вы ни хотели - искровые параллельные авторы не выглядят так, как вы хотите. – Tim