Apache spark Spark数据集2级深度聚合
哪一个是最好的解决方案 要在数据集上进行两级深度聚合 让我更好地解释这个问题 假设我们有属于一个或多个列表的用户,并且每个用户都由一个或多个合作伙伴提供 我们希望删除同一列表中的重复用户并合并其合作伙伴 该数据集的用户数约为千分之十 原始数据 详细数据 解决方案1Apache spark Spark数据集2级深度聚合,apache-spark,apache-spark-sql,apache-spark-dataset,Apache Spark,Apache Spark Sql,Apache Spark Dataset,哪一个是最好的解决方案 要在数据集上进行两级深度聚合 让我更好地解释这个问题 假设我们有属于一个或多个列表的用户,并且每个用户都由一个或多个合作伙伴提供 我们希望删除同一列表中的重复用户并合并其合作伙伴 该数据集的用户数约为千分之十 原始数据 详细数据 解决方案1 使用userid和list作为键将数据集转换为javapairdd reduceByKey合并合作伙伴列表(无重复) 将元组映射到新记录 解决方案2 选择数据集分解伙伴 按用户id和列表id分组 收集合作伙伴列上的集合 r.selec
javapairdd
reduceByKey
合并合作伙伴列表(无重复)r.select(
col(“用户id”),
col(“列表id”),
爆炸(col(“合作伙伴”))
.作为(“合伙人”)
)
.groupBy(“用户id”、“列表id”)
.agg(col_set(col)(“合作伙伴”).as(“合作伙伴”)
user_id,list_id,partners
usr1 list1 [p1]
usr1 list1 [p1,p2]
usr1 list1 [p1,p2]