【问题标题】:Spark Scala GroupBySpark Scala GroupBy
【发布时间】:2019-01-03 06:11:20
【问题描述】:

我有以下数据集:

col1_id,    col2_id,       type

1           t1_1                t1 
1           t1_2                t1
2           t2_2                t2

col1_id & col2_id 具有一对多关系,即多个col2_id 可以具有相同的col1_id 值 类型(例如t1)派生自col2_id

目标是找到具有类型(即t1t2 等)的col1_id 的数量

这是我目前正在做的事情,

val df1 = df.select($"col1_id", $"type").groupBy($"col1_id", $"type").count()
df1.drop($"count").groupBy($"type").show() 

这很好用.. 但是我想知道是否有更好的方法来实现这一点。 请告诉我。

【问题讨论】:

  • 我不认为你的例子工作“很好”,它甚至没有编译

标签: scala apache-spark group-by


【解决方案1】:

不知道你为什么提到col2_id,它在这里不起作用?

我希望您想要做的是计算每种类型的不同 col1_id 值?如果是,那么做:

import org.apache.spark.sql.functions.countDistinct

df
  .groupBy($"type")
  .agg(
    countDistinct($"col1_id")
  )
  .show()

【讨论】:

    猜你喜欢
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2019-05-25
    相关资源
    最近更新 更多