首先,我在Glue上使用PySpark,正在读取几个非常大的CSV文件。这些CSV文件经过bzip2压缩并压缩了几GB大小。
在此处理阶段,我仅对所有行执行一个简单映射。没有加入,分组依据,过滤。只是一张地图。
假设我正在10个节点上工作。一般来说,最好是具有较高的分区数或较低的分区数?
我猜想,与所有那些节点上的可用内核无关,这个数字应该很高,以确保每个执行者在任何时候都忙于拥有少量可用数据。
因此,假设在这10个节点上有20个核心,让我们再假设有个基于键的分区,那么大于40的分区可能不是一个好主意。但是在与密钥无关的映射情况下,我倾向于使用1000个或更多分区。
这有意义吗?我对这里的思考过程特别感兴趣。