【问题标题】:Which One is faster? Spark SQL with Where clause or Use of Filter in Dataframe after Spark SQL哪个更快? Spark SQL with Where 子句或在 Spark SQL 之后在 Dataframe 中使用过滤器
【发布时间】:2016-11-07 12:38:30
【问题描述】:

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

Like Select col1, col2 from tab 1 where col1=val;

或者

dataframe df=sqlContext.sql(Select col1, col2 from tab 1);

df.filter("Col1=Val");

【问题讨论】:

    标签: hadoop apache-spark


    【解决方案1】:

    使用explain 方法查看物理计划是确定性能的好方法。

    例如,Zeppelin 教程笔记本。

    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 在这种情况下更具可读性。

    【讨论】:

      猜你喜欢
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多