我想统计哪个用户查看哪个类别的频率。我是新手Spark和Python。这里是演示数据:火花python减键
dataSource = sc.parallelize([("user1", "film"), ("user1", "film"), ("user2", "film"), ("user2", "books"), ("user2", "books")])
我减少了关键用户和收集所有类别。然后我分裂后数:
dataReduced = dataSource.reduceByKey(lambda x,y : x + "," + y)
catSplitted = dataReduced.map(lambda (user,values) : (values.split(","),user))
每个用户的输出格式是这样的 - >([CAT1,CAT1,CAT2,catn],用户)
可能有人请告诉我怎么算用Spark和Python或者你有不同的方法来解决这个问题?
谢谢,这似乎工作。你能否简单地解释我的最后一个lambda函数。哪个变量表示哪个值 - lambda(x,y):(x,tuple(set((z,y.count(z))for z)y) – user3756702 2014-10-30 09:30:41
我创建了一个元组的元组, ('电影','电影','电影','电影','书籍')成为(('电影',2),('电影',1))。然后设置删除重复,然后将设置转换回元组。 – haraprasadj 2014-10-30 09:34:21