Pyspark:如何对倾斜聚合使用盐化技术
如何在 Pyspark 中使用盐化技术进行倾斜聚合。
假设我们有倾斜的数据,如下所示,如何创建盐列并在聚合中使用它。
城邦 | 3,00,000 | 数量 |
---|---|---|
Lachung | 锡金 | 3,000 |
Rangpo | 锡金 | 50,000 |
甘托克 | 锡金 | 班加罗尔 |
卡纳塔克邦 | 2,50,00,000 | 孟买 |
马哈拉施特 | 拉邦 | 2,90,00,000 |
How to use salting technique for Skewed Aggregation in Pyspark.
Say we have Skewed data like below how to create salting column and use it in aggregation.
city | state | count |
---|---|---|
Lachung | Sikkim | 3,000 |
Rangpo | Sikkim | 50,000 |
Gangtok | Sikkim | 3,00,000 |
Bangalore | Karnataka | 2,50,00,000 |
Mumbai | Maharashtra | 2,90,00,000 |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要对倾斜数据使用加盐技术,我们需要创建一个名为“盐”的列。生成一个范围从 0 到 (spark.sql.shuffle.partitions - 1) 的随机编号。
表应如下所示,其中“salt”列的值从 0 到 199(在本例中分区大小为 200)。现在您可以对“城市”、“州”、“盐”使用 groupBy。
代码:
输出
To use the salting technique on skewed data, we need to create a column say "salt". Generate a random no with a range from 0 to (spark.sql.shuffle.partitions - 1).
Table should look like below, where "salt" column will have value from 0 to 199 (as in this case partitions size is 200). Now you can use groupBy on "city", "state", "salt".
code:
output: