大数据Spark(七十七):Action行动算子first、collect和collectAsMap使用案例

文章目录

Action行动算子first、collect和collectAsMap使用案例

一、first使用案例

二、collect使用案例

三、collectAsMap使用案例


Action行动算子first、collect和collectAsMap使用案例

一、first使用案例

返回数据集中第一个元素,first=take(1)。

Java代码:

java 复制代码
SparkConf conf = new SparkConf().setMaster("local").setAppName("FirstTest");
JavaSparkContext sc = new JavaSparkContext(conf);
//first:返回RDD中的第一个元素
String first = sc.parallelize(Arrays.asList("a", "b", "c", "d")).first();
System.out.println(first);
sc.stop();

Scala代码:

Scala 复制代码
val conf: SparkConf = new SparkConf().setMaster("local").setAppName("FirstTest")
val sc = new SparkContext(conf)

//first: 取出RDD中第一个元素
val first: Int = sc.parallelize(Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)).first()
println(first)
sc.stop()

二、collect使用案例

将RDD中所有数据回收到Driver端。

Java代码:

java 复制代码
SparkConf conf = new SparkConf().setMaster("local").setAppName("CollectTest");
JavaSparkContext sc = new JavaSparkContext(conf);

//collect:将RDD中的所有元素收集到Driver端
List<String> collect = sc.parallelize(Arrays.asList("a", "b", "c", "d")).collect();
for (String s : collect) {
    System.out.println(s);
}

sc.stop();

Scala代码:

Scala 复制代码
val conf: SparkConf = new SparkConf().setMaster("local").setAppName("CollectTest")
val sc = new SparkContext(conf)
//collect: 以数组的形式返回RDD中的所有元素
val nums: Array[String] = sc.parallelize(Array("a","b","c","d")).collect()
println(nums.mkString(","))
sc.stop()

三、collectAsMap使用案例

对K,V格式的RDD数据回收为Map<K,V>对象到Driver端。

Java代码:

java 复制代码
SparkConf conf = new SparkConf().setMaster("local").setAppName("CollectTest");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaPairRDD<String, Integer> rdd = sc.parallelizePairs(Arrays.asList(
        new Tuple2<String, Integer>("a", 1),
        new Tuple2<String, Integer>("b", 2),
        new Tuple2<String, Integer>("c", 3)
));

//collectAsMap:将RDD中的元素转换为Map
Map<String, Integer> map = rdd.collectAsMap();
//遍历Map
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " " + entry.getValue());
}

sc.stop();

Scala代码:

Scala 复制代码
val conf: SparkConf = new SparkConf().setMaster("local").setAppName("CollectAsMapTest")
val sc = new SparkContext(conf)

//collectAsMap: 将RDD中的元素转换为Map
val rdd: RDD[(String, Int)] = sc.parallelize(List(("a", 1), ("b", 2), ("c", 3), ("d", 4)))
val map: collection.Map[String, Int] = rdd.collectAsMap()
map.foreach(println)
sc.stop()

  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
相关推荐
字节跳动数据平台16 小时前
代码量减少 70%、GPU 利用率达 95%:火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
得物技术17 小时前
深入剖析Spark UI界面:参数与界面详解|得物技术
大数据·后端·spark
武子康19 小时前
大数据-238 离线数仓 - 广告业务 Hive分析实战:ADS 点击率、购买率与 Top100 排名避坑
大数据·后端·apache hive
武子康2 天前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
大大大大晴天2 天前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
武子康4 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
肌肉娃子4 天前
20260227.spark.Spark 性能刺客:千万别在 for 循环里写 withColumn
spark
初次攀爬者5 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
武子康5 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet