通过下推提高性能 - Amazon Redshift

通过下推提高性能

Spark 连接器自动应用谓词和查询下推来优化性能。有了这种支持就意味着,如果您在查询中使用支持的函数,Spark 连接器会将该函数转换成 SQL 查询,并在 Amazon Redshift 中运行该查询。这种优化会减少需要检索的数据,因此 Apache Spark 可以处理更少的数据并获得更好的性能。默认情况下,自动激活下推。要停用它,请将 autopushdown 设置为 false。

import sqlContext.implicits._val sample= sqlContext.read .format("io.github.spark_redshift_community.spark.redshift") .option("url",jdbcURL ) .option("tempdir", tempS3Dir) .option("dbtable", "event") .option("autopushdown", "false") .load()

下推支持以下函数。如果您使用不在此列表中的函数,Spark 连接器将在 Spark 中(而不是在 Amazon Redshift 中)执行此函数,从而导致性能未优化。有关 Spark 中函数的完整列表,请参阅内置函数

  • 聚合函数

    • avg

    • count

    • max

    • min

    • sum

    • stddev_samp

    • stddev_pop

    • var_samp

    • var_pop

  • 布尔运算符

    • in

    • isnull

    • isnotnull

    • contains

    • endswith

    • startswith

  • 逻辑运算符

    • and

    • or

    • not (or !)

  • 数学函数

    • +

    • -

    • *

    • /

    • - (unary)

    • abs

    • acos

    • asin

    • atan

    • ceil

    • cos

    • EXP

    • floor

    • greatest

    • least

    • log10

    • pi

    • pow

    • round

    • sin

    • sqrt

    • tan

  • 其他函数

    • cast

    • coalesce

    • decimal

    • if

    • in

  • 关系运算符

    • !=

    • =

    • >

    • >=

    • <

    • <=

  • 字符串函数

    • ascii

    • lpad

    • rpad

    • translate

    • upper

    • lower

    • length

    • trim

    • ltrim

    • rtrim

    • like

    • substring

    • concat

  • 日期和时间函数

    • add_months

    • date

    • date_add

    • date_sub

    • date_trunc

    • 时间戳

    • trunc

  • 数学运算

    • CheckOverflow

    • PromotePrecision

  • 关系运算

    • Aliases(例如,AS)

    • CaseWhen

    • Distinct

    • InSet

    • 联接和交叉联接

    • Limits

    • Unions,union all

    • ScalarSubquery

    • Sorts(升序和降序)

    • UnscaledValue