我对“并行化”功能的运行时间有疑问。
当我调用此行代码时:
rdd = sc.parallelize(data, numSlices)
我的数据是一个大小约为50的列表,其中每个对象的大小均为10Mb。
我的问题是这个:
当我运行以下行时:
rdd = sc.parallelize(data, 1)
花了大约1-2秒来运行。 但是,当我尝试增加分区数时:
rdd = sc.parallelize(data, 20)
运行时间增加到大约20秒。
我尝试查看了spark代码以及“ readRDDFromFile”功能代码,但看不到切片数量会改变运行时间的任何原因。
注意:如果该列表大约有100个成员,而不是50个,则位于- “ PySpark:java.lang.OutofMemoryError:Java堆空间”
我想我可以增加堆空间来解决该错误,但是在实际尝试使用分区时,我仍然会遇到运行时间非常慢的问题。
因此,试图理解为什么当我增加切片数量时调用并行化需要这么长时间。
谢谢!