gpt4 book ai didi

python - 如何在 Pyspark RDD 中查找元素的索引?

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:47 26 4
gpt4 key购买 nike

这是我的第一个问题。我在 Pyspark 中编码。我有和 RDD:

['a,b,c,d,e,f']

如何找到元素“e”的索引?

我试过 zipWithIndex 但它没有给我任何索引。

我看到一个类似的问题,但是提到的解决方案没有返回索引

rdd.zipWithIndex().filter(lambda key,index : key == 'e') \
.map(lambda key,index : index).collect()

我收到一个错误。

请告诉我如何找到索引。

根据提供的解决方案:

我还有一个问题。我的rdd是这样的格式:

['a,b,c,d,e,f']

所以当我尝试时:

rdd.zipWithIndex().lookup('e')

我得到 [ ]

我该怎么办

谢谢

最佳答案

你会得到一个异常,因为 mapfilter 都需要一个参数的函数:

rdd = sc.parallelize(['a', 'b', 'c', 'd', 'e', 'f'])

(rdd
.zipWithIndex()
.filter(lambda ki: ki[0] == 'e')
.map(lambda ki : ki[1]))

# [4]

在史前的 Python 版本中,元组解包也可以工作:

(rdd
.zipWithIndex()
.filter(lambda (key, index): key == 'e')
.map(lambda (key, index): index))

但我希望你不要使用这些。

我个人只会使用lookup

rdd.zipWithIndex().lookup('e')
# [4]

此外 - 请记住 RDD 中值的顺序可能不确定。

关于python - 如何在 Pyspark RDD 中查找元素的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48492741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com