首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过集群提高SparkSQL查询性能

通过集群提高SparkSQL查询性能
EN

Stack Overflow用户
提问于 2020-06-05 18:26:43
回答 1查看 155关注 0票数 0

我是SparkSQL新手,我主要负责编写SparkSQL查询。我们经常需要在查询中使用JOIN大表,并且不需要很长时间就会遇到与它们相关的性能问题(例如。Joinsaggregates等)。

在网上搜索补救方法时,我最近遇到了一些术语-- COALESCE()REPARTITION()DISTRIBUTE BYCLUSTER BY等,而且它们可能用于提高慢速运行的SparkSQL 查询的性能。

不幸的是,我找不到足够的例子,让我清楚地理解它们,并开始将它们应用到我的查询中。我主要是寻找一些例子来解释它们的语法、提示和使用场景。

有谁能在这里帮助我,并提供SparkSQL查询它们的用法和何时使用它们的例子?例如。

  • syntax
  • hint syntax
  • tips
  • scenarios

注意:我只有编写SparkSQL查询的权限,但没有访问PySpark-SQL的权限。

任何帮助都是非常感谢的。谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-06-06 15:13:24

coalesce

聚结(expr1,expr2,.)-如果存在,则返回第一个非空参数。否则,无效。

示例:

选择聚结(NULL,1,NULL);1自: 1.0.0

通过分发和重新分区

根据给定的表达式重新划分DataFrame。分区数等于spark.sql.shuffle.partitions。请注意,在Spark中,当某个表达式对DataFrame进行分区时,该表达式相等的所有行都位于同一个分区上(但未必相反)!这就是它在实践中的样子。假设我们有一个包含两列的DataFrame : key和value。

集spark.sql.shuffle.partitions =2

从df按键分发选择*

等效于DataFrame API:

df.repartition($"key",2)

集群的实现

这只是在同一组表达式上使用distribute和sort的快捷方式。在SQL中:

集spark.sql.shuffle.partitions =2

按键从df集群中选择*

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62221952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档