Scala火花,显示不同的列值和出现次数

时间:2019-07-03 22:19:43

标签: scala apache-spark apache-spark-sql

我正在尝试查看实木复合地板文件,并希望显示一列的不同值的数量以及在其中发现的行数。

SQL等效项是:

select distinct(last_name), count(*) from optimization.opt_res group by (last_name)

在scala-spark中(单独显示):

val dataFrame = sparkSession.read.parquet(fname)
dataFrame.show(truncate = false)
val disID = dataFrame.select("last_name").distinct()
disID.show(false)
val disCount = disID.count

我希望它显示

+-----------+-------+
| last_name | count |
+-----------+-------+
| Alfred    |   202 |
| James     |  1020 |
+-----------+-------+

1 个答案:

答案 0 :(得分:1)

Defaulting container name to busybox. Use 'kubectl describe pod/busybox -n default' to see all of the containers in this pod. Server: 10.96.0.10 Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local Name: rabbitmq-service.default Address 1: 10.101.126.122 rabbitmq-service.default.svc.cluster.local

dataframe.groupBy($"last_name").agg(count("*"))

概念与SQL相同,但是在您习惯语法之前,语法可能会有些棘手。