Spark Streaming:Rdd.Count() 未返回有效数字
Spark Streaming: Rdd.Count() not returning a valid number
在我的应用程序中,我有两个包含一些数据的 JavaDStream。我试图计算每个 JavaDStream 中的行数,但是我在日志中收到的结果不是一个数字,而是一个完全不同的对象,它输出到日志。我在这里做错了什么?
代码:
//map score result set to tweets
JavaDStream<Tuple5<Long, String, Float, Float, String>> result =
scoredTweets.map(new ScoreTweetsFunction());
//get extra elements
JavaDStream<Tuple7<Long, String, String, String, String, String, String>> extra_elements =
json.map(new GetExtraElements());
//join elements with score result
System.out.println("Number of Rows in extra elements RDD: " + extra_elements.count());
System.out.println("Number of Rows in result RDD: " + result.count());
日志输出:
Number of Rows in extra elements RDD: org.apache.spark.streaming.api.java.JavaDStream@73358a55
Number of Rows in result RDD: org.apache.spark.streaming.api.java.JavaDStream@242aa3b2
DStream
不是 RDD
而是连续且可能无限的 RDD 序列。因此,它不能被计算在内,这不是 count
方法的工作方式。
而是将现有流转换为另一个流,其中每个 RDD
has a single element generated by counting each RDD of this DStream
如果您想对单个 RDD 执行某些操作,您应该使用 foreachRDD
。
在我的应用程序中,我有两个包含一些数据的 JavaDStream。我试图计算每个 JavaDStream 中的行数,但是我在日志中收到的结果不是一个数字,而是一个完全不同的对象,它输出到日志。我在这里做错了什么?
代码:
//map score result set to tweets
JavaDStream<Tuple5<Long, String, Float, Float, String>> result =
scoredTweets.map(new ScoreTweetsFunction());
//get extra elements
JavaDStream<Tuple7<Long, String, String, String, String, String, String>> extra_elements =
json.map(new GetExtraElements());
//join elements with score result
System.out.println("Number of Rows in extra elements RDD: " + extra_elements.count());
System.out.println("Number of Rows in result RDD: " + result.count());
日志输出:
Number of Rows in extra elements RDD: org.apache.spark.streaming.api.java.JavaDStream@73358a55
Number of Rows in result RDD: org.apache.spark.streaming.api.java.JavaDStream@242aa3b2
DStream
不是 RDD
而是连续且可能无限的 RDD 序列。因此,它不能被计算在内,这不是 count
方法的工作方式。
而是将现有流转换为另一个流,其中每个 RDD
has a single element generated by counting each RDD of this DStream
如果您想对单个 RDD 执行某些操作,您应该使用 foreachRDD
。