【发布时间】:2018-03-14 13:22:20
【问题描述】:
我目前是 Spark 的新手,我正在使用 Scala。
我在遍历 RDD Key Value 对时遇到了一些麻烦。
我得到了一个 TSV 文件,file1,其中包括 Country Name、Latittude 和 Longitude,我已经到此为止了;
val a = file1.map(_.split("\t")).map(rec => (rec(1), (rec(11).toDouble, rec(12).toDouble)))
其中rec(1) 是国家名称,rec(11) 是经度,rec(12) 是纬度。
据我了解,a 现在是一个键值对,rec(1) 是键,rec(11) 和 rec(12) 是值。
我设法测试了a.first._1 gives 第一个密钥
a.first._2._1 给出键的第一个值。
a.first._2._2 给出键的第二个值。
我的目标是至少设法使用相同的密钥获得所有 rec(11) 的平均值,并且与 rec(12) 相同。所以我的想法是将它们全部相加,然后除以具有该键的键值对的数量。
有人可以帮助我下一步该怎么做吗?我尝试了map、flatValueMap、valueMap、groupByKey 等,但我似乎无法同时对rec(11) 和rec(12) 求和。
【问题讨论】:
-
我建议你使用 reduceByKey。 pyspark explanation of reducebykey with example
标签: scala apache-spark