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 数组时出错的主要内容,如果未能解决你的问题,请参考以下文章
尝试计算 numpy 数组列中的唯一项时出现“IndexError:数组索引过多”
尝试将列表转换为 numpy 数组时出现 KeyError:0
创建非常大的numpy数组时出现MemoryError [重复]
Python - 尝试使用 PIL 的 Image.fromarray 保存 numpy 数组时出现 TypeError