Niranjan Balasubramani:
私はcrealytics /火花エクセルライブラリを使用して、その中に複数のシートが含まれていますExcelファイルに異なるJavaデータセットを記述しようとしています。
<dependency>
<groupId>com.crealytics</groupId>
<artifactId>spark-excel_2.11</artifactId>
<version>0.13.0</version>
</dependency>
どのように私はそれらの個々のExcelシートの名前を提供していますか?
ここで私が何をしようとしていますものです:
import org.apache.spark.api.java.JavaRDD;
SparkSession spark = SparkSession.builder().appName("LineQuery").getOrCreate();
Dataset<Row> df1 = spark.sql("SELECT * FROM my_table1");
Dataset<Row> df2 = spark.sql("SELECT * FROM my_table2");
df1.write().format("com.crealytics.spark.excel").option("sheetName","My Sheet 1").option("header", "true").save("hdfs://127.0.0.1:9000/var/www/" + outFile + ".xls");
df2.write().format("com.crealytics.spark.excel").option("sheetName","My Sheet 2").option("header", "true").mode(SaveMode.Append).save("hdfs://127.0.0.1:9000/var/www/" + outFile + ".xls");
morsik:
使用するdataAddress
代わりに、オプションを
例:
>>> df = spark.createDataFrame([(11, 12), (21, 22)])
>>> df.show()
+---+---+
| _1| _2|
+---+---+
| 11| 12|
| 21| 22|
+---+---+
>>> df.where("_1 == 11").write.format("com.crealytics.spark.excel").option("dataAddress", "my sheet 1[#All]").option("header", "true").mode("append").save("/tmp/excel-df.xlsx")
>>> df.where("_1 == 21").write.format("com.crealytics.spark.excel").option("dataAddress", "my sheet 2[#All]").option("header", "true").mode("append").save("/tmp/excel-df.xlsx")