python - 通过消除空值来合并 Apache Spark 中的行
问题描述
我有一个如下所示的火花数据框
+---+----+----+----+----+----+----+
| id| 1| 2| 3|sf_1|sf_2|sf_3|
+---+----+----+----+----+----+----+
| 2|null|null|null| 102| 202| 302|
| 4|null|null|null| 104| 204| 304|
| 1|null|null|null| 101| 201| 301|
| 3|null|null|null| 103| 203| 303|
| 1| 11| 21| 31|null|null|null|
| 2| 12| 22| 32|null|null|null|
| 4| 14| 24| 34|null|null|null|
| 3| 13| 23| 33|null|null|null|
+---+----+----+----+----+----+----+
我想通过合并空行来转换如下数据框
+---+----+----+----+----+----+----+
| id| 1| 2| 3|sf_1|sf_2|sf_3|
+---+----+----+----+----+----+----+
| 1| 11| 21| 31| 101| 201| 301|
| 2| 12| 22| 32| 102| 202| 302|
| 4| 14| 24| 34| 104| 204| 304|
| 3| 13| 23| 33| 103| 203| 303|
+---+----+----+----+----+----+----+
最好在scala中。
解决方案
scala 的做法。
val inputColumns = inputLoadDF.columns.toList.drop(0)
val exprs = inputColumns.map(x => first(x,true))
inputLoadDF.groupBy("id").agg(exprs.head,exprs.tail:_*).show()
推荐阅读
- python - Python Smtplib WinError 100022
- python - 新版本 Python 在旧版本 Python 上运行 TKINTER & TURTLE
- python - 将图像分割成高频和低频
- xml - 具有多个命名空间的 XML 文件 - 如何在混合它们时定义有效位置
- ansible - Ansible SNOW 模块
- c - 根据一些特性编辑代码
- r - 将 DF 中的值从一行粘贴到一系列列中的另一行
- c# - 订阅期满后如何限制?
- python - 使用 python-eve 服务器对程序进行分析
- react-native - Shopify create customer api 正在使用邮递员,但不适用于反应本机应用程序