Pyspark - 尝试迭代 numpy 数组时出错

Posted

技术标签:

【中文标题】Pyspark - 尝试迭代 numpy 数组时出错【英文标题】:Pyspark - Error when trying to iterate over an numpy array 【发布时间】:2018-10-02 17:44:56 【问题描述】:

我有一个 RDD,其中 ID 作为键,numpy 数组作为值。

对于数组中的每个值,我想创建另一个 RDD,对于大于 0 的值给出 1,对于等于 0 的值给出 0。

我尝试过以下代码:

RDD2 = RDD1.foreach(lambda x: 1 if np.nditer(x) > 0 else 0)/
.map(lambda x: (x[0],(x[1])))

但它给了我以下错误:AttributeError: 'NoneType' object has no attribute 'map',我不知道为什么

有什么办法可以解决这个问题吗?

谢谢

【问题讨论】:

【参考方案1】:

如果有人想知道,这就是我最终修复它的方式:

RDD2 = RDD1.mapValues(lambda y: map(lambda x: 1 if x > 0 else 0, y))

【讨论】:

以上是关于Pyspark - 尝试迭代 numpy 数组时出错的主要内容,如果未能解决你的问题,请参考以下文章

PySpark 可以使用 numpy 数组吗?

尝试计算 numpy 数组列中的唯一项时出现“IndexError:数组索引过多”

尝试将列表转换为 numpy 数组时出现 KeyError:0

创建非常大的numpy数组时出现MemoryError [重复]

Python - 尝试使用 PIL 的 Image.fromarray 保存 numpy 数组时出现 TypeError

Axes3D:尝试构建 3D 绘图时出现 Numpy 数组错误