带emr spark的雪花性能

qc6wkl3g  于 2021-05-18  发布在  Spark
关注(0)|答案(0)|浏览(242)

我需要处理存储在s3中的数据并将其存储在snowflake中。在几次测试中,我发现了一个性能问题。
公共配置
数据a(存储在s3中):20gb
数据b(存储在s3和雪花中):8.5kb
操作:左外联接
使用emr(Spark)r5.4XL(5)
当我读取数据a和数据b(雪花)时,它经过了1个多小时12分钟

val Adf= spark.read.parquet("s3://path") 

var sfOptions = Map.apply(
"sfURL" -> "XXXXX.us-east-1.snowflakecomputing.com",
"sfUser" -> XXXXX",
"sfPassword" -> "XXXX",
"sfDatabase" -> "XXX",
"sfSchema" -> "XXXX",
"sfWarehouse" -> "XXXX"
)

val Bdf: DataFrame = spark.sqlContext.read
.format(SNOWFLAKE_SOURCE_NAME)
.options(sfOptions)
.option("dbtable","XXXX")
.load()

val resultDF = Adf.join(Bdf, Seq("CNTY"), "leftouter")

resultDF.write
.fomat(SNOWFLAKE_SOURCE_NAME)
.options(sfOptions)
.option("dbtable","t_result_from spark")
.opton("parallelism","8")
.mode(SaveMode.Overwrite)
.save()

但当我读取数据a和数据b(s3)时,只花了10分钟。

val Adf= spark.read.parquet("s3://path") 

val Bdf  spark.read.option("header","true").csv("s3://path") 

val resultDF = Adf.join(Bdf, Seq("CNTY"), "leftouter")

resultDF.write
.fomat(SNOWFLAKE_SOURCE_NAME)
.options(sfOptions)
.option("dbtable","t_result_from spark_2")
.opton("parallelism","8")
.mode(SaveMode.Overwrite)
.save()

为什么在s3上阅读和在snowflake上阅读有不同的表现?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题