从DataSet Spark Java API生成Excel文件?

时间:2018-05-04 09:13:39

标签: apache-spark

我想从我的DataSet生成一个excel文件?

SomeBody可以为我提供示例表达。

2 个答案:

答案 0 :(得分:0)

这样的事情对你来说可能是神奇的。 (语法错误,但这个想法可行)

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;


HSSFWorkbook new_workbook = new HSSFWorkbook();
HSSFSheet sheet = new_workbook.createSheet(obj.getSheetName());
org.apache.poi.ss.usermodel.Row header = sheet.createRow(0);

// Assume there are data already in an array which contains all the header field names
for (int y = 0; y < len; y++) {
    header.createCell(y).setCellValue(fieldAr[y]);
}

接下来,您可以通过迭代数据集中的数据来填充工作表(我无法详细说明如何为您的案例执行此操作),但这样的事情可以正常工作

for (String key : keySet) {
    org.apache.poi.ss.usermodel.Row row = sheet.createRow(rowNum++);
    List<Object> objArr = excel_data.get(key);
    int cellNum = 0;
    for (Object object : objArr) {
       Cell cell = row.createCell(cellNum++);
}

FileOutputStream output_file = new FileOutputStream(new File(output)); //create XLS file
    new_workbook.write(output_file);//write converted XLS file to output stream
    output_file.close();

答案 1 :(得分:-1)

val ds = Seq(1,2,3,4,5).toDS

ds.write.csv(“/ tmp / file”)//提供一些hdfs或文件系统路径

它将根据数据集的分区数将数据存储到多个文件中。

  • 如果我们将数据存储在hdfs
  • 中,请使用hdfs merge命令
  • 使用cat命令并将所有输出重定向到单个csv文件      喜欢猫* .csv&gt;&gt; final.csv