十秒看完
1.业务处理中存在复杂的多表关联和计算逻辑(原始数据达百亿数量级)
2.优化后,spark计算性能提升了约12倍(6h-->30min)
3.最终,业务的性能瓶颈存在于ES写入(计算结果,ES...背景
业务数据不断增大, Spark运行时间越来越长, 从最初的半小时到6个多小时
某日Spark程序运行6.5个小时后, 报“Too large frame...”的异常
org.apache.spark.shuffle.FetchFailedException...异常,就是发生在业务数据处理的最后一步left join操作
2.2....非法数据)
业务无关的数据
分析join操作, 左右表的特征, 判断是否可以进行小表广播 broadcast
这样可避免shuffle操作,特别是当大表特别大
默认情况下, join时候, 如果表的数据量低于...spark.sql.autoBroadcastJoinThreshold参数值时(默认值为10 MB), spark会自动进行broadcast, 但也可以通过强制手动指定广播
visitor_df.join