我有一个dataframe
df,可以将json
文件保存为以下结构:{"id":"1234567890","score":123.0,"date":yyyymmdd}
对于第一个实例,我将其保存如下:
df.write.format("json").save("path")
此df需要在json
id::1234567890\t{"id":"1234567890","score":123.0,"date":yyyymmdd}
个文件
我尝试了各种各样的方法,但无法做到。我们如何以所需的格式保存它?
Spark version: 1.6.0
Scala version: 2.10.6
答案 0 :(得分:1)
这不是json格式。你最好使用rdd,然后将其转换为自定义格式。
final case class LineOfSomething(id: String, score: BigDecimal, date: String)
import sqlContext.implicits._
df
.as[LineOfSomething]
.rdd
.mapPartitions(lines => {
val mapper = new com.fasterxml.jackson.databind.ObjectMapper()
mapper.registerModule(com.fasterxml.jackson.module.scala.DefaultScalaModule)
lines.map(line => {
val json = mapper.writeValueAsString(line)
s"id::${line.id}\t$json"
})
})
.saveAsTextFile(output)