Kun*_*mar 8 scala apache-spark
我有一个RDD的形式
org.apache.spark.rdd.RDD[(String, Array[String])]
Run Code Online (Sandbox Code Playgroud)
我想把它写成一个csv文件.请建议我如何做到这一点.
在myrdd.saveAsTextFile上执行输出如下所示.
(875,[Ljava.lang.String;@53620618)
(875,[Ljava.lang.String;@487e3c6c)
Run Code Online (Sandbox Code Playgroud)
小智 9
你可以试试:
myrdd.map(a => a._1 + "," + a._2.mkString(",")).saveAsTextFile
Run Code Online (Sandbox Code Playgroud)
另一个答案不适合逃避.也许这个更通用的解决方案
import au.com.bytecode.opencsv.CSVWriter
import java.io.StringWriter
import scala.collection.JavaConversions._
val toCsv = (a: Array[String]) => {
val buf = new StringWriter
val writer = new CSVWriter(buf)
writer.writeAll(List(a))
buf.toString.trim
}
rdd.map(t => Array(t._1) ++ t._2)
.map(a => toCsv(a))
.saveAsTextFile(dest)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9684 次 |
| 最近记录: |