2016-11-11 30 views
0

我正在使用Spark流(在java中)使用来自Kafka的消息。我已经在rdd上做了一些处理。现在,我应该把这个处理过的信息(字符串)写到s3上的一个文件中。我如何实现这一目标?在火花传输中写入处理文件

directKafkaStream.map(message -> recordInjection.invert(message._2).get()).foreachRDD(rdd -> { 
       rdd.foreach(record -> { 
    // processing each record, storing the processed info in a string. 
    // write each processed record (string) to s3 
    }); 
}); 
+0

猜测唯一的方法是用map函数形成一个rdd然后写入s3。 – RED

回答

0

你可以用RDD.saveAsTextFile( “S3A://bucket/path/file.avro”),虽然你可能会发现自己创造了许多,许多小文件。

+0

Steve,我从RDD中提取了一些字段,这就是我想要保存到S3中的字段。由于我只能保存RDD,因此我无法直接保存这些字段。 – RED