【问题标题】:Performance measurement of Spark SqlSpark Sql的性能测量
【发布时间】:2019-02-24 11:46:09
【问题描述】:

我正在尝试比较 SparkSql on Parquet 和 Phoenix on HBase 之间的性能。 我正在执行的查询具有连接和聚合 我尝试检查 Parquet 性能的 Spark Sql 的方法是执行以下操作:

spark.time(sql("some sql").show)

我的问题是:

  1. 这是测试所需时间的正确和最简单的方法吗? Spark Sql 执行
  2. 我直接执行凤凰查询 在 Spark Sql 中。有什么办法可以对它进行一些优化吗?

【问题讨论】:

  • 这里有一篇关于它的好帖子:db-blog.web.cern.ch/blog/luca-canali/…
  • df.show() 从结果集中提取不超过 20 行。根据生产其余部分的成本,它可能会使测量结果出现偏差。还有另一个版本的 show 接受要显示的最大行数,如果将参数设置为接近实际行数,这可能会导致更准确的结果。

标签: apache-spark-sql parquet


【解决方案1】:

假设您将以下 SQL 作为 SPARK SQL 运行,并且 SQL 需要几分钟才能在大量数据上执行。

"SELECT * FROM TABLE_NAME WHERE ;"

现在,其中一种方法是使用此 SQL 初始化数据框并从中创建视图。

val dbDf6 = spark.sql("select * from table_name where <filter> = 'Y'");
//When the above statement is executed then DAG will be created but execution will 
not happen.
//Note time before triggering execution (pro grammatically or otherwise)
dbDf6.count();
//Note time after triggering execution (pro grammatically or otherwise)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    相关资源
    最近更新 更多