Apache Spark: запись на несколько листов в Excel - PullRequest
0 голосов
/ 09 марта 2020

Мне нужно написать наборы данных на разных листах одной книги Excel. Мне удалось добиться того же, используя библиотеку com.crealytics.spark.excel.

df3.write()
   .format("com.crealytics.spark.excel")
   .option("dataAddress", "lines[#All]")
   .option("header", "true")
   .save("hdfs://${namenode}/" + outFile + ".xls");

fdf3.write()
    .format("com.crealytics.spark.excel")
    .option("dataAddress","newlines[#All]")
    .option("header", "true")
    .mode(SaveMode.Append).save("${namenode}/" + outFile + ".xls");

Это хорошо работает с меньшими данными и записывается на 2 отдельных листа в одном листе, но не работает для больших данных (около 1 ГБ файл). Поэтому я переключился на новую библиотеку org.zuinnote.spark.office.excel

df3.coalesce(1).write()
               .format("org.zuinnote.spark.office.excel")
               .option("write.spark.defaultsheetname", "lines")
               .option("hadoopoffice.write.header.write", true)
               .save("hdfs://${namenode}/" + outFile + ".xls");

fdf3.coalesce(1).write()
               .format("org.zuinnote.spark.office.excel")
               .option("write.spark.defaultsheetname", "newlines")
               .option("hadoopoffice.write.header.write", true)
               .mode(SaveMode.Append)
               .save("hdfs://${namenode}/" + outFile + ".xls");

Но это создает 2 файла Excel, а не 2 листа в одной книге. Есть ли возможность написать его как новый лист в рабочей тетради?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...