当前位置: 首页 > news >正文

完整教程:大数据Spark(七十六):Action行动算子reduce和take、takeSample使用案例

文章目录

Action行动算子reduce和take、takeSample使用案例

一、reduce使用案例

二、take(n)使用案例

三、takeSample使用案例


Action行动算子reduce和take、takeSample使用案例

一、reduce使用案例

reduce可以对RDD中所有元素进行聚合操作,最终形成一个单一的结果。

Java代码:

SparkConf conf = new SparkConf().setMaster("local").setAppName("CustomPartitionerTest");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD rdd = sc.parallelize(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
Integer reduce = rdd.reduce((a, b) -> a + b);
System.out.println(reduce);
sc.stop();

Scala代码:

val conf = new SparkConf().setMaster("local").setAppName("filter")
val sc = new SparkContext(conf)
val rdd: RDD[Int] = sc.parallelize(List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
val result: Int = rdd.reduce(_ + _)
println(result)
sc.stop()

二、take(n)使用案例

返回一个包含数据集前n个元素的集合,结果会返回到Driver端。

Java代码:

SparkConf conf = new SparkConf().setMaster("local").setAppName("TakeTest");
JavaSparkContext sc = new JavaSparkContext(conf);
//take:返回RDD中的前n个元素
List takes = sc.parallelize(Arrays.asList("a", "b", "c", "d")).take(3);
System.out.println(takes.toString());
sc.stop();

Scala代码:

val conf: SparkConf = new SparkConf().setMaster("local").setAppName("TakeTest")
val sc = new SparkContext(conf)
//take: 取出RDD中前n个元素
val nums: Array[Int] = sc.parallelize(Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)).take(3)
println(nums.mkString(","))
sc.stop()

三、takeSample使用案例

takeSample用于从RDD中随机抽取指定数量的元素,返回一个集合到Driver端。方法签名如下:

def takeSample(withReplacement: Boolean,num: Int,seed: Long = Utils.random.nextLong): Array[T]

其中,withReplacement 指定抽样时是否放回,true表示有放回抽样,同一个元素可能被多次抽取,false表示无放回抽样,同一个元素最多被抽取一次;num 指定要随机抽取的元素数量;seed 是随机数生成器的种子,默认为随机生成,该参数如果固定,那么每次获取的数据固定。

Java代码:

SparkConf conf = new SparkConf().setMaster("local").setAppName("takeSampleTest");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD rdd = sc.parallelize(Arrays.asList("a", "b", "c", "d", "e", "f","h","i","j","k"));
//takeSample: 从RDD中随机抽取num个元素,withReplacement表示是否放回,seed表示随机数种子
List list = rdd.takeSample(true, 4,100);
for (String s : list) {System.out.println(s);
}
sc.stop();

Scala代码:

val conf: SparkConf = new SparkConf().setMaster("local").setAppName("ForeachPartitionTest")
val sc = new SparkContext(conf)
val rdd: RDD[String] = sc.parallelize(List("a", "b", "c", "d", "e", "f", "h", "i", "j", "k"))
//takeSample: 从RDD中随机抽取num个元素,withReplacement表示是否放回,seed表示随机数种子
val strings: Array[String] = rdd.takeSample(true, 4, 100)
println(strings.mkString(","))
sc.stop()

  • 博客主页:https://lansonli.blog.csdn.net
  • 欢迎点赞 收藏 ⭐留言 如有错误敬请指正!
  • 本文由 Lansonli 原创,首发于 CSDN博客
  • 停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
http://www.jsqmd.com/news/382321/

相关文章:

  • IDA Pro 9.3 正式版发布 - 强大的反汇编程序、反编译器和多功能调试器
  • 这一路破空 苦难有千重谁人懂 只求有朝再相逢
  • 2026年评价高的上海企业报销系统/自动报销系统精选推荐平台 - 行业平台推荐
  • 聚焦RTO供货商:2026年市场服务模式解析,旋风除尘器/滤筒除尘器/沸石转轮一体机/除尘器/沸石转轮,RTO厂家推荐榜 - 品牌推荐师
  • 2026年热门的横梁机床铸件/机床铸件底座口碑排行精选供应商推荐 - 行业平台推荐
  • 2026年靠谱的吉林数字人制作/长春数字人制作智能化推荐平台 - 行业平台推荐
  • 2026年口碑好的智慧操场/智慧操场跑步测试仪管理推荐厂家 - 行业平台推荐
  • 印刷糊箱联动线定制:2026年优质厂家应具备的特质,印刷糊箱联动线怎么选购精选国内优质品牌榜单 - 品牌推荐师
  • 30岁小白转行AI大模型?收藏这份学习路线,带你轻松入行!30岁转行AI大模型,刚好赶上风口!
  • 2026年质量好的供热聚氨酯保温管道/河北预制聚氨酯保温管真实参考销售厂家参考怎么选 - 行业平台推荐
  • 2026年热门的长春短视频运营/长春短视频运营代理商热门企业推荐公司 - 行业平台推荐
  • 2026年昆山交通事故律师推荐:2026年度昆山交通事故律师深度对比评测与口碑排名报告 - 资讯焦点
  • 2026年口碑好的金属抛光去毛刺机/不锈钢拉丝去毛刺机厂家推荐哪家好(高评价) - 行业平台推荐
  • 2026年国内热门的闸阀工厂排行榜,手动闸阀/铸钢截止阀/铸钢阀门/不锈钢止回阀/软密封闸阀,闸阀制造商哪家好 - 品牌推荐师
  • 2026年口碑好的兆声波晶圆清洗机厂家用户口碑推荐清单 - 品牌鉴赏师
  • 复分析初步:复数乘法
  • PingCastle Pro 3.5.0.7 - Active Directory 安全检测和评估
  • 2026年热门的专用机床铸件/铸铁机床铸件可靠供应商参考哪家靠谱(可靠) - 行业平台推荐
  • 2026年比较好的聚氨酯喷涂缠绕保温管/河北聚氨酯发泡保温管道源头厂家采购指南怎么选(畅销) - 行业平台推荐
  • 2026年评价高的河北蒸汽保温管道/钢套钢蒸汽保温管实力厂家推荐如何选 - 行业平台推荐
  • 2026年热门的天津二手集装箱装箱/天津二手集装箱租赁推荐几家可靠供应商参考 - 行业平台推荐
  • 2026年优秀的HIFU换能器厂家口碑品牌推荐榜 - 品牌鉴赏师
  • 2026年靠谱的楼承板/无锡免浇筑楼承板哪家质量好厂家实力参考 - 行业平台推荐
  • 飞牛NAS笔记本盒盖不休眠
  • 2026年正规的海外GEO品牌/海外GEO建站企业选择指南公司 - 行业平台推荐
  • 2026年质量好的昆山超声波焊接机/超声波塑料焊接机哪家质量好厂家推荐(实用) - 行业平台推荐
  • 2026年靠谱的陕西钢塑复合管/河南钢塑复合管厂家推荐与选购指南 - 行业平台推荐
  • JVM篇2:根可达性算法-垃圾回收算法和三色标记算法-CMS和G1 - 实践
  • 实测对比后 10个AI论文网站:本科生毕业论文写作必备工具测评
  • 2026年靠谱的二轴破碎机/卧式破碎机用户好评厂家推荐 - 行业平台推荐