Мне нужно написать наборы данных на разных листах одной книги 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 листа в одной книге. Есть ли возможность написать его как новый лист в рабочей тетради?