本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
透過下推功能改善效能
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
-
-
邏輯運算子
-
以及
-
或
-
not (or !)
-
-
數學函式
-
+
-
-
-
*
-
/
-
- (unary)
-
abs
-
acos
-
asin
-
atan
-
ceil
-
cos
-
exp
-
floor
-
greatest
-
least
-
log10
-
pi
-
pow
-
round
-
sin
-
sqrt
-
tan
-
-
其他函數
-
cast
-
coalesce
-
decimal
-
如
-
in
-
-
關係運算子
-
!=
-
=
-
>
-
>=
-
<
-
<=
-
-
字串函數
-
ascii
-
lpad
-
rpad
-
translate
-
upper
-
lower
-
length
-
trim
-
ltrim
-
rtrim
-
like
-
substring
-
concat
-
-
日期和時間函數
-
add_months
-
date
-
date_add
-
date_sub
-
date_trunc
-
timestamp
-
trunc
-
-
數學運算
-
CheckOverflow
-
PromotePrecision
-
-
關係運算
-
Aliases (例如 AS)
-
CaseWhen
-
Distinct
-
InSet
-
Joins 和 cross joins
-
限制
-
Unions, union all
-
ScalarSubquery
-
Sorts (遞增和遞減)
-
UnscaledValue
-