哪一个更快?使用Where子句的Spark SQL或在Spark SQL之后使用Dataframe中的过滤器?
喜欢从选项卡1中选择col1,col2,其中col1 = val;
或者
dataframe df = sqlContext.sql(从选项卡1中选择col1,col2);
df.filter( “Col1中= VAL”);
答案 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
在这种情况下更具可读性。