Will try with JSON relation, but with Spark's temp tables (Spark version 1.6 ) I get an optimized plan as you have mentioned. Should not be much different though.
Query : "select t1.col2, t1.col3 from t1, t2 where t1.col1=t2.col1 and t1.col3=7" Plan : Project [COL2#1,COL3#2] +- Join Inner, Some((COL1#0 = COL1#3)) :- Filter (COL3#2 = 7) : +- LogicalRDD [col1#0,col2#1,col3#2], MapPartitionsRDD[4] at apply at Transformer.scala:22 +- Project [COL1#3] +- LogicalRDD [col1#3,col2#4,col3#5], MapPartitionsRDD[5] at apply at Transformer.scala:22 Regards, Rishitesh Mishra, SnappyData . (http://www.snappydata.io/) https://in.linkedin.com/in/rishiteshmishra On Wed, May 11, 2016 at 4:56 PM, Telmo Rodrigues < telmo.galante.rodrig...@gmail.com> wrote: > In this case, isn't better to perform the filter earlier as possible even > there could be unhandled predicates? > > Telmo Rodrigues > > No dia 11/05/2016, às 09:49, Rishi Mishra <rmis...@snappydata.io> > escreveu: > > It does push the predicate. But as a relations are generic and might or > might not handle some of the predicates , it needs to apply filter of > un-handled predicates. > > Regards, > Rishitesh Mishra, > SnappyData . (http://www.snappydata.io/) > > https://in.linkedin.com/in/rishiteshmishra > > On Wed, May 11, 2016 at 6:27 AM, Telmo Rodrigues < > telmo.galante.rodrig...@gmail.com> wrote: > >> Hello, >> >> I have a question about the Catalyst optimizer in Spark 1.6. >> >> initial logical plan: >> >> !'Project [unresolvedalias(*)] >> !+- 'Filter ('t.id = 1) >> ! +- 'Join Inner, Some(('t.id = 'u.id)) >> ! :- 'UnresolvedRelation `t`, None >> ! +- 'UnresolvedRelation `u`, None >> >> >> logical plan after optimizer execution: >> >> Project [id#0L,id#1L] >> !+- Filter (id#0L = cast(1 as bigint)) >> ! +- Join Inner, Some((id#0L = id#1L)) >> ! :- Subquery t >> ! : +- Relation[id#0L] JSONRelation >> ! +- Subquery u >> ! +- Relation[id#1L] JSONRelation >> >> >> Shouldn't the optimizer push down predicates to subquery t in order to >> the filter be executed before join? >> >> Thanks >> >> >> >