Apache Spark中是否有办法创建一个简单地代理底层(自定义)数据源的Spark SQL 代理表?
我有一个自定义数据源,它通过实现org.apache.spark.sql.sources.PrunedFilteredScan
支持谓词下推,现在我想对那个过滤谓词传递(下推)到数据源的数据源使用Spark SQL。将数据源注册为普通临时表(使用sqlContext.read.format("mydatasource").load().createOrReplaceTempView("myTable")
)不是一个选项,因为这最终会将所有数据都提取到Spark中。
答案 0 :(得分:1)
临时视图(Dataset.createTempView
和Dataset.createOrReplaceTempView
)和外部表格(2.2之前的Catalog.createExternalTable
,自2.2之后的Catalog.createTable
)都不应该将所有数据提取到Spark ,并且所有这些选项都支持与基础源相同程度的推迟下推。