将RDD [OmnitureData]写入S3

时间:2017-07-22 06:10:29

标签: scala apache-spark amazon-s3 rdd

我有一个RDD,它包含我的自定义类OmnitureData的对象类型。 OmnitureData数据包含1000个数据变量。我想把数据写入S3。

data: RDD[OmnitureData]
data.saveAsTextFile(path)

在S3中,我看到数据为:

OmnitureFeedOutputEntry@5655c68b
OmnitureFeedOutputEntry@kgfwe77c
OmnitureFeedOutputEntry@4rjkks8f
OmnitureFeedOutputEntry@57bfgk6d
OmnitureFeedOutputEntry@646lk6sd

如何以能够看到OmnitureData成员实际数据的方式存储它?

1 个答案:

答案 0 :(得分:0)

找到了解决方案。

def writeOnS3(data: RDD[OmnitureFeedOutputEntry], path: String)= {
try {
  val finalData: RDD[String] = data.map(x => {
    implicit val formats = Serialization.formats(NoTypeHints)
    write(x)})
  finalData.saveAsTextFile(path)
  logger.info("task=writeOnS3, status=success")
} catch {
  case e: Exception =>  logger.error("task=writeOnS3, status=failure")
}

}