Spark dataframe.saveAsTable против spark. sql («вставить таблицу перезаписи ...») - PullRequest
1 голос
/ 10 февраля 2020

Я заметил огромную разницу в производительности при записи в паркетную таблицу с несколькими вызовами См. Следующий Scala пример кода.

val df = spark.table("my_parquet_partitioned_table")
df.write.partitionBy("event_date").mode("overwrite").saveAsTable("my_table2")

df.createOrReplaceTempView("df_view")
spark.sqlContext.setConf("hive.exec.dynamic.partition.mode", "nonstrict") // necessary for next line. Why saveAsTable doesn't need this?

spark.sql("insert overwrite table my_table3 select * from df_view") // 10 

в 10 раз медленнее, чем saveAsTable.

КСТАТИ Я выполнял это на AWS / EMR.

...