在Spark SQL查询中计算派生表的大小



是否可以近似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。欢迎发表评论。

我以前也做过类似的事情(计算出在编写时要拆分到多少分区(。

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

最新更新