Pyspark 数据帧减少

Pyspark 数据帧减少,pyspark,apache-spark-sql,Pyspark,Apache Spark Sql,在…方面需要帮助吗。。。按键将多行转换为单行。欢迎分组咨询。使用pyspark版本:2 l = (1,1,'', 'add1' ), (1,1,'name1', ''), (1,2,'', 'add2'), (1,2,'name2', ''), (2,1,'', 'add21'), (2,1,'name21', ''), (2,2,'', 'add22'), (2,2,'name22', '') df = sqlContext.crea

在…方面需要帮助吗。。。按键将多行转换为单行。欢迎分组咨询。使用pyspark版本:2

l = (1,1,'', 'add1'  ),
    (1,1,'name1', ''),
    (1,2,'', 'add2'),
    (1,2,'name2', ''),
    (2,1,'', 'add21'),
    (2,1,'name21', ''),
    (2,2,'', 'add22'),
    (2,2,'name22', '')

df = sqlContext.createDataFrame(l, ['Key1', 'Key2','Name', 'Address'])
df.show()
+----+----+------+-------+
|Key1|Key2|  Name|Address|
+----+----+------+-------+
|   1|   1|      |   add1|
|   1|   1| name1|       |
|   1|   2|      |   add2|
|   1|   2| name2|       |
|   2|   1|      |  add21|
|   2|   1|name21|       |
|   2|   2|      |  add22|
|   2|   2|name22|       |
+----+----+------+-------+
我一直在寻找像这样的输出

+----+----+------+-------+
|Key1|Key2|  Name|Address|
+----+----+------+-------+
|   1|   1| name1 |   add1|
|   1|   2| name2 |   add2|
|   2|   1| name21|  add21|
|   2|   2| name22|  add22|
+----+----+------+-------+

Key1
Key2
分组,并从
Name
Address
中取最大值:

导入pyspark.sql.F函数
df.groupBy(['Key1','Key2']).agg(
F.max(df.Name).alias('Name'),
F.max(df.Address).alias('地址')
).show()
+----+----+------+-------+
|键1 |键2 |名称|地址|
+----+----+------+-------+
|1 | 1 |姓名1 |地址1|
|2 | 2 |姓名22 |地址22|
|1 | 2 |姓名2 |地址2|
|2 | 1 |姓名21 |地址21|
+----+----+------+-------+

感谢您的回复谢谢!!,