我正在写一个从kafka主题中读取的火花代码。
SparkConf sparkConfig =
new SparkConf().setAppName("KafkaStreaming").setMaster("local[5]");
JavaStreamingContext jsc =
new JavaStreamingContext(sparkConfig,Durations.seconds(5));
final HiveContext sqlContext = new HiveContext(jsc.sc());
JavaPairReceiverInputDStream<String, String> messages =
KafkaUtils.createStream(jsc,
prop.getProperty("zookeeper.connect"),
prop.getProperty("group.id"),
topicMap);
JavaDStream<String> lines =
messages.map(
new Function<Tuple2<String, String>, String>() {
private static final long serialVersionUID = 1L;
public String call(Tuple2<String, String> tuple2) {
return tuple2._2();
}
});
如何将这些行rdd存储在本地磁盘中 我正在尝试下面的事情:
lines.dstream().saveAsTextFiles
但它不起作用。有没有其他方法可以将textFile存储到我的localdisk.spark
答案 0 :(得分:1)
根据您的需要,几乎没有选择:
prefix
和suffix
生成:“prefix-TIME_IN_MS.suffix”。foreachRDD()
方法答案 1 :(得分:1)
您可以使用以下内容:
lines.foreachRDD(new Function<JavaRDD<String>, Void>() {
public Void call(JavaRDD<String> rdd) throws Exception {
rdd.saveAsTextFile("/home/xxx/xxx");
return null;
}
});
但是这将存储在hdfs中。不确定是否要存储在hdfs中。