簡體   English   中英

將StringBuilder轉換為RDD [String]

[英]Convert StringBuilder to RDD[String]

我試圖將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]的任何想法?

parallelize期望一個Seq 當您傳入一個String(或StringBuilder)時,它將把該String視為Seq[Char]

您必須自己創建String Seq。 例如,如果您希望每行一個String,則只需使用sc.parallelize(Seq("#", "# Version 1"))

要將其縮減為單個輸出文件,請使用headerFile.coalesce(1).saveAsTextFile(path)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM