【发布时间】:2020-08-11 13:42:39
【问题描述】:
我需要高效地执行 SparkSQL 语句。例如。一次编译,多次执行(使用不同的参数值)。
对于一个简单的 SQL 示例:
select * from my_table where year=:1
其中 :1 是一个绑定变量,因此该语句只编译一次,并执行 N 次(使用不同的值),我需要相同的 SparkSQL 等价物。
类似的东西:
year = 2020
df_result = spark.sql("select * from my_table where year={0}".format(year))
不是我所期望的,因为不是真正的绑定变量,而只是一个特定的实例化句子。
【问题讨论】:
-
为什么需要这个?为了表现?我想您会发现带有字符串插值的示例将为您提供快速而良好的服务。
-
确实是在性能方面。如果您碰巧执行了此语句数千次,那么可以看看替代方法以避免每次都重新计算该语句。
标签: apache-spark apache-spark-sql