如何使用apache spark java中的hadoop office库将数据集写入excel文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用apache spark java中的hadoop office库将数据集写入excel文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2010字,纯文字阅读大概需要3分钟。
内容图文
目前我正在使用com.crealytics.spark.excel来读取excel文件,但是使用这个库我无法将数据集写入excel文件.
这个link说使用hadoop办公室库(org.zuinnote.spark.office.excel)我们可以读写excel文件
请帮我把数据集对象写入spark java中的excel文件.
解决方法:
您可以使用org.zuinnote.spark.office.excel来使用数据集读取和写入Excel文件.示例在https://github.com/ZuInnoTe/spark-hadoopoffice-ds/给出.但是,如果您在数据集中读取Excel并尝试将其写入另一个Excel文件,则会出现一个问题.请在https://github.com/ZuInnoTe/hadoopoffice/issues/12查看scala中的问题和解决方法.
我使用org.zuinnote.spark.office.excel编写了一个Java示例程序,并在该链接中给出了解决方法.请看看这是否对您有所帮助.
public class SparkExcel {
public static void main(String[] args) {
//spark session
SparkSession spark = SparkSession
.builder()
.appName("SparkExcel")
.master("local[*]")
.getOrCreate();
//Read
Dataset<Row> df = spark
.read()
.format("org.zuinnote.spark.office.excel")
.option("read.locale.bcp47", "de")
.load("c:\\temp\\test1.xlsx");
//Print
df.show();
df.printSchema();
//Flatmap function
FlatMapFunction<Row, String[]> flatMapFunc = new FlatMapFunction<Row, String[]>() {
@Override
public Iterator<String[]> call(Row row) throws Exception {
ArrayList<String[]> rowList = new ArrayList<String[]>();
List<Row> spreadSheetRows = row.getList(0);
for (Row srow : spreadSheetRows) {
ArrayList<String> arr = new ArrayList<String>();
arr.add(srow.getString(0));
arr.add(srow.getString(1));
arr.add(srow.getString(2));
arr.add(srow.getString(3));
arr.add(srow.getString(4));
rowList.add(arr.toArray(new String[] {}));
}
return rowList.iterator();
}
};
//Apply flatMap function
Dataset<String[]> df2 = df.flatMap(flatMapFunc, spark.implicits().newStringArrayEncoder());
//Write
df2.write()
.mode(SaveMode.Overwrite)
.format("org.zuinnote.spark.office.excel")
.option("write.locale.bcp47", "de")
.save("c:\\temp\\test2.xlsx");
}
}
我用Java 8和Spark 2.1.0测试了这段代码.我正在使用maven并从https://mvnrepository.com/artifact/com.github.zuinnote/spark-hadoopoffice-ds_2.11/1.0.3添加了对org.zuinnote.spark.office.excel的依赖
内容总结
以上是互联网集市为您收集整理的如何使用apache spark java中的hadoop office库将数据集写入excel文件全部内容,希望文章能够帮你解决如何使用apache spark java中的hadoop office库将数据集写入excel文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。