我是从csv加载的数据帧,大约5.4 GB,包含210列 大约200000行。
我在数据框上运行了这个函数:
cnts = (df.select([countDistinct(c).alias(c) for c in df.columns]).first().asDict())
我的系统有32GB内存,此任务太慢,显示 13.5小时任务时间,这是正常的吗? 或者,我做错了什么,我们可以加快一点? 这是在POC的Windows服务器上独立安装spark。
答案 0 :(得分:0)
尝试保留RDD并使用MEMORY_AND_DISK存储级别,如果内存不足,它会尝试将其写回DISK,与重新计算RDD相比,它具有性能优势。
如果你将它保存到磁盘使用KYRO序列化,则默认为二进制格式,这很慢。