[英]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.