【问题标题】:Spark SQL proxy tables with predicate pushdown带有谓词下推的 Spark SQL 代理表
【发布时间】:2017-11-23 10:47:51
【问题描述】:

在 Apache Spark 中有没有一种方法可以创建一个 Spark SQL代理表,它只是代理到底层(自定义)数据源?

我有一个自定义数据源,它通过实现org.apache.spark.sql.sources.PrunedFilteredScan 支持谓词下推,现在我想对该数据源使用 Spark SQL,其中过滤谓词通过(下推)到数据源。将数据源注册为普通临时表(使用sqlContext.read.format("mydatasource").load().createOrReplaceTempView("myTable"))不是一种选择,因为这最终会将所有数据拉入 Spark。

【问题讨论】:

  • “因为这最终会将所有数据拉入 Spark。” 您能否详细说明您是如何检查的和/或是什么让您认为会发生这种情况?

标签: apache-spark apache-spark-sql


【解决方案1】:

临时视图(Dataset.createTempViewDataset.createOrReplaceTempView)和外部表(2.2 之前的Catalog.createExternalTable,2.2 之后的Catalog.createTable)都不应该将所有数据拉入 Spark,并且所有这些选项都支持将下推预测到与底层源相同的程度。

【讨论】:

  • 我以为我观察到了一些不同但真实的东西,临时视图似乎也压低了谓词。谢谢!
猜你喜欢
  • 2019-01-21
  • 2016-07-14
  • 2015-12-10
  • 2020-07-02
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 2020-04-16
  • 2020-02-02
相关资源
最近更新 更多