【问题标题】:Convert StringBuilder to RDD[String]将 StringBuilder 转换为 RDD[String]
【发布时间】:2015-04-08 17:53:17
【问题描述】:

我正在尝试将 StringBuilder 对象转换为 RDD[String],但遇到了一些麻烦。我能够将 StringBuilder 对象放入 RDD[Char],但我需要它成为 RDD[String]。当它以 RDD[Char] 的形式写入文件系统时,它会在每行放置 1 个字符。这是不可接受的。我正在使用带有 Java 7 的 Spark 1.2。我的代码如下

val sc = new SparkContext
val sb:StringBuilder = new StringBuilder();
    sb.append("#").append("\n");
    sb.append("# Version 1").append("\n");
val headerFile = sc.parallelize(sb, 1)
headerFile.saveAsTextFile(path)
sc.stop

关于如何将 sb 转换为 RDD[String] 的任何想法?

【问题讨论】:

    标签: scala apache-spark


    【解决方案1】:

    parallelize 需要 Seq。当您传入一个字符串(或 StringBuilder)时,它会将字符串视为 Seq[Char]

    您必须自己创建字符串序列。例如,如果您希望每行一个字符串,只需使用sc.parallelize(Seq("#", "# Version 1"))

    要将其缩减为单个输出文件,请使用headerFile.coalesce(1).saveAsTextFile(path)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      • 2021-12-22
      • 2021-09-28
      相关资源
      最近更新 更多