哪一个更快?使用Where子句的Spark SQL或在Spark SQL之后使用Dataframe中的Filter

时间:2016-11-07 12:38:30

标签: hadoop apache-spark

哪一个更快?使用Where子句的Spark SQL或在Spark SQL之后使用Dataframe中的过滤器?

喜欢从选项卡1中选择col1,col2,其中col1 = val;

或者

dataframe df = sqlContext.sql(从选项卡1中选择col1,col2);

df.filter( “Col1中= VAL”);

1 个答案:

答案 0 :(得分:17)

使用explain方法查看实际计划是确定效果的好方法。

例如,Zeppelin Tutorial笔记本。

sqlContext.sql("select age, job from bank").filter("age = 30").explain

并且

sqlContext.sql("select age, job from bank where age = 30").explain

具有完全相同的物理计划。

== Physical Plan ==
Project [age#5,job#6]
+- Filter (age#5 = 30)
   +- Scan ExistingRDD[age#5,job#6,marital#7,education#8,balance#9]

所以表现应该是一样的。

通过我认为select age, job from bank where age = 30在这种情况下更具可读性。