我是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
答案 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