从列表中获取数据

时间:2019-08-04 06:03:29

标签: pyspark

我是PySpark的新手,已经购买了一本书以提高我的PySpark技能。使用函数时我陷入困境。

功能

def filterDuplicates((userID,rating)):

     (movie1, rating1) = ratings[0]

     (movie2, rating2) = ratings[1]

     return movie1 < movie2

由于两个连续的括号,我得到了错误。 Step基本上会得到一个RDD,它基本上是touple的列表,如下所示:

[(196, ((242, 3.0), (242, 3.0))), (196, ((242, 3.0), (393, 4.0)))]

最终结果应该只是唯一的电影ID,每个观看者的评分。

因此,在上述示例中,196是观看者ID,242是电影ID,而3.0是观看者给出的评分。

请告知我是否需要下载其他版本的python以使用双括号。目前,我的计算机上安装了Python 3.7。

谢谢, AJ

1 个答案:

答案 0 :(得分:0)

元组中的变量名没有用。如果您确实希望将元组作为函数的参数,则将整个元组命名为

def filterDuplicates ( userData ):
     userId = userData[0]
     ratings = userData[1]

     movie1 = ratings[0][0]
     rating1 = ratings[0][1]

     movie2 = ratings[1][0]
     rating2 = ratings[1][1]

     return movie1 < movie2