是否可以对Dataframe进行分区,然后并行地将Dataframe分区转换为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上并行运行此操作(理想情况下,还包括以下所有培训步骤,从而生成几个经过培训的学习者示例)。
1条答案
按热度按时间cqoc49vn1#
你可以用
data.rdd.mapPartitions(func)
它将为worker上的每个分区执行。看起来您正在使用RDDAPI,它的级别非常低,很难使用。我建议您使用更安全、更简单的dataframeapi。在那里,你也可以用
pyspark foreachpartition-代码在哪里执行