【问题标题】:How to iterating list in a row with lambda fuction in pyspark?如何在pyspark中使用lambda函数连续迭代列表?
【发布时间】:2016-11-07 16:09:34
【问题描述】:

我的问题是以下一个:我需要遍历行进入 RDD,并且对于每一行我需要遍历一个列表。 我的 RDD 是:

rdd1:
[a,b,c,d]
[f,g,j,k]

rddMinHash=ListRDD.map(lambda j: funct(iterating into list of row j))

如何将代码写入funct()?

【问题讨论】:

  • 您希望funct() 做什么?您已经尝试过哪些方法?
  • lambda j 遍历 rdd1 的每一行,funct() 是一个 minhash 并且必须应用于列表的每个项目。问题是 minHash 不接受列表而只接受一个字符串,所以我必须每次传递一个项目。我尝试使用嵌套的 lambda 函数循环到 rdd 行和内部 lambda 函数循环到列表中,但它不起作用。
  • 你的方法似乎是有效的。你能用你写的代码更新问题吗?那我们就可以试着找出里面的bug了。
  • rddMinHash=ListRDD.map(lambda j: lambda x : dist(x[0],x[1]))

标签: list pyspark rdd


【解决方案1】:

您可以在 lambda 函数中使用 List Comprehensions

喜欢这个rdd1.map(lambda x: [len(x) for i in x])

x 是行,类型是列表。 i 是列表中的元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-11
    • 2020-11-20
    • 2011-02-01
    • 2015-05-26
    • 2020-02-04
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    相关资源
    最近更新 更多