我将一个JSON文件加载到Spark Cluster中。我想基于几列来识别所有重复记录并将它们写入RDD。我尝试使用Spark SQL但无法完成任务。
答案 0 :(得分:0)
通过识别重复项,我不明白你的意思。如果您提到的数据是基于架构的,可以从Spark SQL
获得帮助。如果您只想从组中删除重复项,请将其转换为DataFrame
并尝试以下操作。
df.dropDuplicates(List("colA" , "colB"))
答案 1 :(得分:0)
假设您有两列(“column1”和“column2”)可用于查找记录是否重复,您可以尝试以下操作(使用Spark SQL):
rgb( 255 , 0 ,0)
如果您需要所有列,则可以将结果数据框与原始数据结合使用:
val newData = data
.groupBy("column1", "column2")
.agg(count("*").as("cnt"))
.where(col("cnt") > 1)
修改强>
或者,如果您有HiveContext,则可以使用窗口函数:
val finalData = newData.join(data, Seq("column1", "column2"))