java - saveAsTextFile() 将最终的 RDD 写入单个文本文件 - Apache Spark

标签 java apache-spark

我正在使用 Apache Spark 开发批处理应用程序,我想将最终的 RDD 编写为文本文件,目前我正在使用 RDD 中提供的 saveAsTextFile("filePath") 方法。

我的文本文件包含用 \u0001 分隔符分隔的字段。所以在模型类 toString() 方法中,我添加了所有用 \u0001 分隔符分隔的字段。

这是处理这个问题的正确方法吗?或任何其他可用的最佳方法?

另外,如果我迭代 RDD 并使用 Java 中可用的 FileWriter 类写入文件内容怎么办?

请指教。

问候, 香卡

最佳答案

要写入单个文件,有几个选项。如果您写入 HDFS 或类似的分布式存储,您可以先 coalesce你的 RDD 缩小到一个分区(注意你的数据必须适合一个 worker ),或者你可以 collect数据到驱动程序,然后使用文件编写器。

关于java - saveAsTextFile() 将最终的 RDD 写入单个文本文件 - Apache Spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31145737/

相关文章:

java - 使用 Java 将 JSON 数组和对象转换为 TableView

scala - 如何在spark ml中定义特征列

apache-spark - Spark/Python - 使用配置单元创建表失败并出现 ParseException

scala - 如何更改spark中的日志级别?

java - 从匿名类的角度来看,局部变量遮蔽的字段

java - 注释内的代码在 Unicode 序列之后执行

java - 如何使用 objectify 确保 Appengine 实体上的并发请求的一致性?

java - TestNG 数据提供程序中的 NumberFormatException

python - 如何在 Pyspark 中获取最近的 N 个日期

hadoop - 在没有任何 hadoop 依赖的情况下构建 Spark