如何通过pyspark使用Azure Synapse的笔记本中使用的任何函数来实现这一点?
xuo3flqw1#
在这种情况下尝试使用pivot + groupBy + agg()函数。
pivot + groupBy + agg()
Example:
from pyspark.sql.functions import * df = spark.createDataFrame([('1234','VW','1022'),('1234','YH','5466'),('12345','VW','1022'),('12345','YH','5466')],['col1','col2','col3']) df.groupBy("col1").pivot("col2").agg(first(col("col3"))).show(10,False) #+-----+----+----+ #|col1 |VW |YH | #+-----+----+----+ #|1234 |1022|5466| #|12345|1022|5466| #+-----+----+----+
如果您需要特定格式的输出列名,则使用toDF()更改列名。
toDF()
df.groupBy("col1").pivot("col2").agg(first(col("col3"))).toDF("col1","col2=VW","col2=YH").show(10,False) #+-----+-------+-------+ #|col1 |col2=VW|col2=YH| #+-----+-------+-------+ #|1234 |1022 |5466 | #|12345|1022 |5466 | #+-----+-------+-------+
1条答案
按热度按时间xuo3flqw1#
在这种情况下尝试使用
pivot + groupBy + agg()
函数。Example:
如果您需要特定格式的输出列名,则使用
toDF()
更改列名。