是否可以对数据帧进行分区,然后将数据帧分区并行转换为numpy,并将其用于培训Scikit learn的一些学员
例如,我尝试了这个方法,但得到了一个索引错误:IndexError: too many indices for array
def files_to_numpy(data):
data_np = np.array(data)
X = data_np[:, [0, 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]]
y = data_np[:,1]
data.rdd.map(files_to_numpy)
如果我想处理驱动程序上的数据,我必须在转换后运行collect()
,然后使用索引语法,但我希望在workers上并行运行此操作(理想情况下,还需要执行以下所有培训步骤,从而生成学习者的几个经过培训的实例)
您可以使用
data.rdd.mapPartitions(func)
,它将对worker上的每个分区执行。看起来您正在使用RDDAPI,它的级别非常低,很难使用。我建议您使用更安全、更简单的DataFrameAPI在那里,你可以实现同样的事情
pySpark forEachPartition - Where is code executed
相关问题 更多 >
编程相关推荐