【发布时间】:2015-07-24 16:50:45
【问题描述】:
我是 Scala 和 Spark 的新手。我在 Spark Shell 中工作。
我需要 Group By 并按此文件的前 三个字段 进行排序,以查找重复项。如果我在组中找到重复项,我需要在 第三个字段 中附加一个计数器,从“1”开始,并以“1”递增,用于重复组中的每条记录。读取新组时将计数器重置回“1”。如果没有找到重复项,则只需附加计数器,即“1”。
CSV 文件 包含以下内容:
("00111","00111651","4444","PY","MA")
("00111","00111651","4444","XX","MA")
("00112","00112P11","5555","TA","MA")
val csv = sc.textFile("file.csv")
val recs = csv.map(line => line.split(",")
如果我在上面的示例中正确应用逻辑,则生成的 recs 的 RDD 将如下所示:
("00111","00111651","44441","PY","MA")
("00111","00111651","44442","XX","MA")
("00112","00112P11","55551","TA","MA")
【问题讨论】:
-
这有点像“请写我的代码”。你试过什么?你考虑过什么方法?
-
再次。这不是“写我的代码”。我是 SCALA 的新手。我能够使用以下方法识别重复项: var addrDupes = loadAddresses.map(a => (a.field1,a.field2,a.field3)).countByValue.toList 只是不知道如何更改字段
-
这不是指责,但没有任何代码的问题陈述往往会被这样解释。不管怎样,你现在有两个答案,一个来自我。
-
下次我会记得包含我的代码。然而,我的实际代码包括 300 个 Java 类和我正在处理的更复杂的数据结构。我发布的示例是我在不包括所有其他内容的情况下尝试做的最基本的方面。
标签: scala apache-spark