我继承了一个讨厌的TSQL迭代代码,需要在spark上运行。
我不会为您带来太多细节,但是代码在从minDate到maxdate的四个月内应用了滑动10天的窗口,并应用了更正。
在Hive中以Parquet格式存储的4个月期间的总大小约为12GB,因此并不庞大。假设分布均匀1天的数据量约为100MB。
该算法被应用了两次,因此避免了每天要缓存的磁盘写操作的开销,一旦该日期从十天的窗口结束时就存储为全局临时视图。这些临时视图也将尽快删除。
每个执行器都有32GB的内存,但是我看到我的工作失败了,因为超出了这个范围。
所以我的问题是:
是否有可能获得比Spark UI提供的执行器内存更细粒度的视图,所以我可以查看可能引起此问题的原因。
我假设全局temp视图在进行分区时存储在多个执行器中。是这样吗保存全局临时视图时,我还有其他需要注意的地方吗,例如Parquet和Hive格式之间压缩率的差异?