java - RDD另存为文本文件

标签 java csv apache-spark rdd

如何使用 RDD.save as Text 文件保存具有分隔格式的文本文件?..我还需要将数据帧列写入作为标题。.我如何实现这一点?

对于大型 RDD 有没有比下面更简单的方法..

List<Row> data = resultFrame.toJavaRDD().collect();
    try {
      File file = new File(fileName);

      if (!file.exists()) {
        file.createNewFile();
      }

      FileWriter fw = new FileWriter(file);

      BufferedWriter bufferedWriter = new BufferedWriter(fw);
      for (Row dataRow:data)
      {
        StringBuilder row  = new StringBuilder();
          for(int i = 0; i<dataRow.size();i++)
          {
            row.append(dataRow.get(i));
            if (i != dataRow.size()-1)
            {
              row.append("~");
            }

          }
        bufferedWriter.write(row.toString());
        bufferedWriter.write("\n");
        row.setLength(0);
      }
      bufferedWriter.close();
    } catch (IOException e) {
      LOGGER.error("Error in writing to the ruf file");
    }

最佳答案

正如您使用SQLContext.read ( Java API ) 进行阅读一样,您也需要使用DataFrame.write ( Java API )。

其他方式已弃用(例如 SQLContext.parquetFile、SQLContext.jsonFile)。

关于java - RDD另存为文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36412672/

相关文章:

java - 将颜色添加到字体的属性java swing

java - 将输出保存到数组,然后写入 .csv 文件

java - Apache Camel - SQL 到 CSV

hadoop - Hortonworks Oozie Spark 操作 - NullPointerException

java - 如何根据这种特殊的 equals 逻辑重写 hashcode 方法

java堆内存管理内存不足

java - 无法安装 Picketlink Forge 插件 JBoss

mysql - 比较mysql中的两个大数据集或表

java - 作业因阶段失败 : Task 0 in stage 5. 0 失败 1 次而中止,最近的失败 : Lost task 0. 0 在阶段 5.0

json - 转换为 Spark 所需的 JSON 格式,以便在 Java 中为数据帧创建架构