spark join和union+reducebykey 对比
对于某些聚合需求可以用union+reducebykey的方式替换join,join将会做两个表的连接操作比较消耗新能,union+reducebykey,可以在map的端进行预聚合,然后再reduce阶段再次聚合,涉及到的shuffle较少
具体举例,需求统计每个文件夹昨天和今天的文件数相加总和
hdfsdir | filecount | day |
文件夹 | 文件数 | 日期 |
join实现如下
package cn.x2q
import org.apache.spark.SparkConf
import org.apache.spark.internal.Logging
import org.apache.spark.sql.SparkSession
/**
* @Auther: huowang
* @Date: 14:15 2019/08/16
* @DES: spark
* 测试程序 测试 spark 的 join 和 union + reducebykey 效率
*
*
* @Modified By:
*/
object TestJoin extends Logging {
def main(args: Array[String]): Unit = {
log.info("========