import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaSparkContext;
import scala.Tuple2;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* count算子:
* 求一个RDD中元素的数量,返回值为long型。
*
* countByKey算子:
* 求个一个RDD中key相同的数量,返回值为map类型。
*
* 下列代码的输出结果为:
* 4
* {d=2, t=2}
*/
public class CountByKeyAndCountDemo {
public static void main(String[] args) {
SparkConf conf = new SparkConf().setMaster("local").setAppName("spark");
JavaSparkContext sc = new JavaSparkContext(conf);
List<Tuple2<String, Integer>> list1 = Arrays.asList(
new Tuple2<>("t", 1),
new Tuple2<>("t", 2),
new Tuple2<>("d", 1),
new Tuple2<>("d", 2)
);
JavaPairRDD<String,Integer> javaPairRDD = sc.parallelizePairs(list1);
//count算子,求元素数量
long count = javaPairRDD.count();
System.err.println(count);
//countByKey算子,求一个key的数量
Map map = javaPairRDD.countByKey();
System.err.println(map.toString());
}
}
Java Spark算子:count 与 countByKey
最新推荐文章于 2023-05-24 17:17:52 发布