Pyspark 数据帧减少
在…方面需要帮助吗。。。按键将多行转换为单行。欢迎分组咨询。使用pyspark版本:2Pyspark 数据帧减少,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
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|
+----+----+------+-------+
感谢您的回复谢谢!!,