Joh*_*art 9 hadoop scala apache-spark spark-dataframe
我有两张桌子想加入.其中一个数据偏差非常糟糕.这导致我的spark作业不能并行运行,因为大部分工作都是在一个分区上完成的.
我已经听过并阅读并试图实施盐键以增加分配. 在12:45秒https://www.youtube.com/watch?v=WyfHUNnMutg正是我想要做的.
任何帮助或提示将不胜感激.谢谢!
是的,您应该在较大的表上使用加盐键(通过随机化),然后将较小的/笛卡尔连接复制到新的加盐键:
这里有一些建议:
Tresata skew join RDD https://github.com/tresata/spark-skewjoin
python 倾斜连接:https : //datarus.wordpress.com/2015/05/04/fighting-the-skew-in-spark/
该tresata
库看起来是这样的:
import com.tresata.spark.skewjoin.Dsl._ // for the implicits
// skewjoin() method pulled in by the implicits
rdd1.skewJoin(rdd2, defaultPartitioner(rdd1, rdd2),
DefaultSkewReplication(1)).sortByKey(true).collect.toLis
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6618 次 |
最近记录: |