如何使用数据集进行分组

猴子之旅

我有使用rdd的要求:

val test = Seq(("New York", "Jack"),
    ("Los Angeles", "Tom"),
    ("Chicago", "David"),
    ("Houston", "John"),
    ("Detroit", "Michael"),
    ("Chicago", "Andrew"),
    ("Detroit", "Peter"),
    ("Detroit", "George")
  )
sc.parallelize(test).groupByKey().mapValues(_.toList).foreach(println)

结果是:

(纽约,名单(杰克))

(底特律清单(Michael,Peter,George))

(洛杉矶,名单(汤姆))

(休斯顿,李斯特(约翰))

(芝加哥,名单(戴维,安德鲁))

如何在spark2.0中使用数据集?

我有使用自定义函数的方法,但是感觉是如此复杂,没有简单的指向方法?

拉梅什·马哈然(Ramesh Maharjan)

我建议您先创建一个case classas

case class Monkey(city: String, firstName: String)

case class应该在主类之外定义。然后,您可以使用toDSfunction,并按如下所示使用groupByaggregationfunctioncollect_list

import sqlContext.implicits._
import org.apache.spark.sql.functions._

val test = Seq(("New York", "Jack"),
  ("Los Angeles", "Tom"),
  ("Chicago", "David"),
  ("Houston", "John"),
  ("Detroit", "Michael"),
  ("Chicago", "Andrew"),
  ("Detroit", "Peter"),
  ("Detroit", "George")
)
sc.parallelize(test)
  .map(row => Monkey(row._1, row._2))
  .toDS()
  .groupBy("city")
  .agg(collect_list("firstName") as "list")
  .show(false)

您将输出为

+-----------+------------------------+
|city       |list                    |
+-----------+------------------------+
|Los Angeles|[Tom]                   |
|Detroit    |[Michael, Peter, George]|
|Chicago    |[David, Andrew]         |
|Houston    |[John]                  |
|New York   |[Jack]                  |
+-----------+------------------------+

您总是可以RDD通过调用.rdd函数来转换回

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Bigquery GIS,如何使用 Openstreetmap 数据集对每个国家的坐标进行分组

如何根据行开始对数据集进行分组

如何在箱线图中对数据集进行分组?

使用 LINQ 对 2 个字段上的数据集进行分组

如何使用mongodb对数据进行分组?

如何使用数据透视表进行分组

使用Spark数据框/数据集进行动态分组并计数

如何使用Vue对表单数据进行分组

如何使用行分组对PrimeNG DataTable中的数据进行排序

如何使用数组对唯一数据进行分组

如何使用相同的键值对JSON数据进行分组?

如何使用dplyr在一次分析中分析按分组和未分组的数据集

如何在熊猫的多个列中对数据集进行分组

如何根据python中的时间变化对数据集进行分类或重新分组

如何在熊猫数据集上进行合并和分组计算?

使用 dplyr 对数据集进行分组并汇总均值和 SD(标准差)

在使用expand.grid计算距离矩阵之前,按变量对数据集进行分组

如何识别数据集分组的变量

如何使用Tensorflow数据集进行CNN模型训练

如何使用此特定数据集进行线性回归?

如何使用groupby对xarray数据集进行下采样?

如何使用R中的线索对数据集进行排序

如何使用sas宏对多个数据集进行采样

如何使用 fashion-MNIST 数据集进行逻辑回归

如何使用迭代进行分组?

如何使用位列进行分组?

使用Python分组并汇总数据集

如何使用Django查询集按小时对对象进行分组?

如何优化代码以对“数据框”进行分组,排序和应用“差异”(当前在小型数据集上运行非常慢)