spark broadcast side join实例
来源:互联网 发布:excel多列数据找相同 编辑:程序博客网 时间:2024/06/05 18:48
在用spark进行大数据处理时,join是少不了的操作。由于join会导致shuffle,所以当数据量较大时,会导致效率很低,甚至任务失败。
为了有效解决shuffle阶段引起的效率过低问题,我们可以使用broadcast map side join来避免shuffle阶段导致的效率变低问题。
使用map side join时,我们可以把一个较小的dataframe转换成map并“广播”,从而避免shuffle操作。
直接看实例。
def cc_in_flow(cc_info_bc: //被广播的变量,后边Map要对应 org.apache.spark.broadcast.Broadcast[scala.collection.Map[String,String]])={ udf((ip_server: String) => cc_info_bc.value. getOrElse(ip_server,""))}val ccDF_info=cnc_df.rdd.map(p=>(p.getString(0),p.getString(1))).collectAsMap()val ccDF_info_bc=sc.broadcast(ccDF_info)
val joinDF_ALL = df_flow_m.where((cc_in_flow(ccDF_info_bc)(col("src_ip")) notEqual("")) or (cc_in_flow(ccDF_info_bc)(col("dst_ip")) notEqual("")))以上代码用来代替cnc_df与df_flow_m的join操作,执行时间可以从1小时降到5分钟!!
阅读全文
0 0
- spark broadcast side join实例
- spark join broadcast优化
- spark join broadcast优化
- spark实现Map-side Join和Reduce-side Join
- MapReduce map side join实例
- mapreduce实例-Join连接 (reduce Side Join)
- Spark map-side-join 关联优化
- Spark map-side-join 关联优化
- Spark map-side-join 关联优化
- Spark map-side-join 关联优化
- Spark-sql Join优化=>(cache+BroadCast)
- Spark SQL中的broadcast join分析
- 在Spark中实现map-side join和reduce-side join
- 在Spark中实现map-side join和reduce-side join
- Apache Spark探秘:实现Map-side Join和Reduce-side Join
- Apache Spark探秘:实现Map-side Join和Reduce-side Join
- Broadcast与map进行join,避免shuffle,从而优化spark
- spark-broadcast
- 如何使用JavaScript根据图片获取条形码
- Andriod trance日志分析的思路
- hibernate ,criteria关联查询
- 面向对象方法学的四个要点
- 自然语言处理-实际开发:用语义开放平台olami写一个翻译的应用
- spark broadcast side join实例
- spring中applicationContext中配置aop的注意事项
- [LeetCode] 405. Convert a Number to Hexadecimal
- 如何设计出优秀的LOGO?设计大神告诉你!
- 搭建Hadoop分布式开发环境(一)
- 浅谈Hibernate中SessionFactory以及Session
- 一个简单的DWR框架实例
- libnl移植到ARM Linux
- Request获取url信息以及url带的参数