首页 > 解决方案 > 如何在scala中仅对元组的一个元素应用聚合

问题描述

我有一个 tuple: (Dataset[user], date), wheredate: String 和 user 有 columns userId : Long and address: List[String]。我想聚合 userId 并组合地址列表,所以我使用方法:

private def combineAddressList(
      users: Dataset[user]): Dataset[user] = {
    users
      .withColumn("address", explode($"address"))
      .groupBy(col("userId"))
      .agg(collect_set("address").as("address"))
      .select(col("userId"), col("address"))
      .as[user]
  }

我只想将上述方法应用于元组的一个元素,并保持日期字符串不变。可能吗?

标签: scalaapache-spark-sql

解决方案


推荐阅读