小编Dav*_*hao的帖子

如何合并 pyspark 中的行?

在 PySpark 中,存在这样的概念coalesce(colA, colB, ...):每行将从这些列中获取它遇到的第一个非空值。但是,我希望coalesce(rowA, rowB, ...)能够在每列中获取它从这些行中遇到的第一个非空值。我想合并一组或行窗口中的所有行。

例如,给定以下数据集,我想合并每个类别的行并按日期升序排列。

+---------+-----------+------+------+
| category|       date|  val1|  val2|
+---------+-----------+------+------+
|        A| 2020-05-01|  null|     1|
|        A| 2020-05-02|     2|  null|
|        A| 2020-05-03|     3|  null|
|        B| 2020-05-01|  null|  null|
|        B| 2020-05-02|     4|  null|
|        C| 2020-05-01|     5|     2|
|        C| 2020-05-02|  null|     3|
|        D| 2020-05-01|  null|     4|
+---------+-----------+------+------+
Run Code Online (Sandbox Code Playgroud)

我应该得到的输出是......

+---------+-----------+------+------+
| category|       date|  val1|  val2|
+---------+-----------+------+------+
|        A| 2020-05-01|     2|     1|
|        B| 2020-05-01| …
Run Code Online (Sandbox Code Playgroud)

pyspark

3
推荐指数
1
解决办法
5173
查看次数

标签 统计

pyspark ×1