【问题标题】:Computing the size of a derived table in Spark SQL query在 Spark SQL 查询中计算派生表的大小
【发布时间】:2020-09-09 23:47:13
【问题描述】:

是否可以在 Spark SQL 查询中估计派生表的大小(在kb/mb/gb 等)?我不需要确切的大小,但可以使用近似值,这将允许我通过确定是否可以在连接中广播表来更好地规划我的查询,或者是否在连接中使用过滤的子查询会比使用更好整张桌子等等。

例如在以下查询中,是否可以近似命名为 b 的派生表的大小(在 MB 中)?这将帮助我弄清楚在 Join 中使用派生表是否会更好,而不是在外部使用带有过滤器的整个表 -

select
a.id, b.name, b.cust
from a
left join (select id, name, cust 
           from tbl
           where size > 100
           ) b
on a.id = b.id

我们使用 Spark SQL 2.4。任何 cmet 表示赞赏。

【问题讨论】:

    标签: apache-spark apache-spark-sql


    【解决方案1】:

    我以前也做过类似的事情(计算写入时要拆分多少个分区)。

    我们最终做的是计算出平均行大小并对 DataFrame 进行计数,然后将其乘以行数。

    【讨论】:

      猜你喜欢
      • 2017-03-06
      • 2021-08-20
      • 1970-01-01
      • 2017-07-04
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      相关资源
      最近更新 更多