【问题标题】:Spark python most repeated value for each keySpark python每个键的最重复值
【发布时间】:2016-05-21 17:33:38
【问题描述】:

我有一个格式为:(日期,城市)的 RDD。而里面的数据是这样的:

day1, city1
day1, city2
day1, city2
day2, city1
[...]

我需要获得每天“重复”最多的城市,即我需要以下结果:

day1, city2
day2, city1
day3, ...

你能帮我用 Python 怎么做吗?

我试着做一个简单的字数统计:

rdd.map(lambda x: (x[0], [1]. \
map(lambda y:y,1). \
reduceByKey(lambda a,b: a+b). \
takeOrdered(1, lambda s:-1*s[1]))).collect()

但是当然不行……

提前致谢。

【问题讨论】:

  • 如果你知道 SQL 应该很容易。您能否请edit您的问题包括您尝试过的内容?
  • 感谢 cricket_007 提供的 cmets,如果问题没有正确提出,我们深表歉意。

标签: python apache-spark rdd


【解决方案1】:

只是修改后的字数:

rdd.map(lambda x: (x, 1)) \
  .reduceByKey(lambda x, y: x + y) \
  .map(lambda ((day, city), count): (day, (city, count))) \
  .reduceByKey(lambda x, y: max(x, y, key=lambda x: x[1])) 

【讨论】:

  • 谢谢!它工作得很好,这正是我需要的:)
猜你喜欢
  • 2016-08-29
  • 1970-01-01
  • 2020-02-11
  • 1970-01-01
  • 2022-01-02
  • 2019-07-15
  • 2021-09-13
  • 1970-01-01
相关资源
最近更新 更多