apache-spark - 如何在 Spark SQL 中的 WITH 子句中缓存子查询结果
问题描述
我想知道 Spark SQL 是否支持 WITH 子句中定义的查询的缓存结果。Spark SQL 查询是这样的:
with base_view as
(
select some_columns from some_table
WHERE
expensive_udf(some_column) = true
)
... multiple query join based on this view
虽然此查询适用于 Spark SQL,但我注意到 UDF 多次应用于同一数据集。在这个用例中,UDF 非常昂贵。所以我想缓存 base_view 的查询结果,以便后续查询将从缓存的结果中受益。
PS 我知道您可以使用给定的查询创建和缓存一个表,然后在子查询中引用它。但是,在这种特定情况下,我无法创建任何表或视图。
解决方案
这是不可能的。WITH 结果在执行后无法持久化或替换为新的 Spark SQL 调用。
推荐阅读
- c++ - Aws::S3::S3Client::S3Client useVirtualAddressing 参数有什么作用?
- jquery - 根据表中存在的值在表中显示图标
- node.js - 如何修复 ORA-06550 调用
- c# - 我没有在数据网格视图上看到任何数据。Localdb 没有发送任何数据(北风)
- c++ - 防止链接静态库共享共享库
- node.js - npm install - ERESOLVE 无法解析依赖树
- html - 在 CSS 中为元素添加插入符号
- python - 如何从突出显示区域的图像中转录文本?
- python - 如何在执行 subprocess.Popen 时保留外壳上输出的原始颜色编码?
- oracle - 在 Oracle 中触发更新