【发布时间】:2016-01-13 14:38:24
【问题描述】:
这可能是一个简单的问题,但基本上我有一个数据集来计算每个国家/地区的女性人数。最终,我想按国家/地区对每个计数进行分组,但我不确定该值使用什么,因为数据集中没有可用作 groupByKey 或 reduceByKey 中的值的计数列。我想过使用 reduceByKey() 但这需要一个键值对,我只想计算键并将计数器作为值。我该怎么做?
val lines = sc.textFile("/home/cloudera/desktop/file.txt")
val split_lines = lines.map(_.split(","))
val femaleOnly = split_lines.filter(x => x._10 == "Female")
这是我卡住的地方。该国在数据集中也是第 13 位。 输出应如下所示: (澳大利亚,201000) (美国,420000) ETC 任何帮助都会很棒。 谢谢
【问题讨论】:
-
您是否有理由不想(暂时)添加值?您基本上可以像计算字数一样进行操作,并使所有 KV 对类似于
然后 reduceByKey 并对值求和。或者做key 然后reduceByKey 和sum 得到指定国家的女性人数。我不确定如何用 scala 做到这一点,但使用 python+spark 这很容易。
标签: hadoop apache-spark cloud