为了账号安全,请及时绑定邮箱和手机立即绑定

Spark谓词下推是否与JDBC一起使用?

Spark谓词下推是否与JDBC一起使用?

www说 2019-11-19 14:32:14
根据这个Catalyst应用了逻辑优化,例如谓词下推。优化器可以将过滤谓词下推到数据源中,从而使物理执行可以跳过不相关的数据。Spark支持将谓词下推到数据源。JDBC是否也可以使用/预期该功能?(通过检查数据库日志,我现在可以看到它不是默认行为-完整的查询将传递到数据库,即使后来受到火花过滤器的限制)更多细节在PostgreSQL 9.4上运行Spark 1.5代码段:from pyspark import SQLContext, SparkContext, Row, SparkConffrom data_access.data_access_db import REMOTE_CONNECTIONsc = SparkContext()sqlContext = SQLContext(sc)url = 'jdbc:postgresql://{host}/{database}?user={user}&password={password}'.format(**REMOTE_CONNECTION)sql = "dummy"df = sqlContext.read.jdbc(url=url, table=sql)df = df.limit(1)df.show()SQL跟踪:< 2015-09-15 07:11:37.718 EDT >LOG:  execute <unnamed>: SET extra_float_digits = 3                                                                                                                      < 2015-09-15 07:11:37.771 EDT >LOG:  execute <unnamed>: SELECT * FROM dummy WHERE 1=0                                                                                                                   < 2015-09-15 07:11:37.830 EDT >LOG:  execute <unnamed>: SELECT c.oid, a.attnum, a.attname, c.relname, n.nspname, a.attnotnull OR (t.typtype = 'd' AND t.typnotnull), pg_catalog.pg_get_expr(d.adbin, d.adrelid) LIKE '%nextval(%' FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON (c.relnamespace = n.oid) JOIN pg_catalog.pg_attribute a ON (c.oid = a.attrelid) JOIN pg_catalog.pg_type t ON (a.atttypid = t.oid) LEFT JOIN pg_catalog.pg_attrdef d ON (d.adrelid = a.attrelid AND d.adnum = a.attnum) JOIN (SELECT 15218474 AS oid , 1 AS attnum UNION ALL SELECT 15218474, 3) vals ON (c.oid = vals.oid                                                                                                                                                                                                       我希望最后一个选择将包含一个limit 1子句-但它不会
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 489 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号