如何解决旋转不带groupBy列的Spark数据框
假设我有一个像这样的数据框,
+---+----+------+
|id |name|salary|
+---+----+------+
|10 |abc |100 |
+---+----+------+
我想对数据进行透视/转置,以便输出看起来像
+--------+----+
|col_name|data|
+--------+----+
|id |10 |
|name |abc |
|salary |100 |
+--------+----+
我如何使用pyspark做到这一点。
解决方法
您可以将堆栈用作
s = ','.join([f"'{i}',`{i}`" for i in df.columns])
df = df.select([col(i).cast('string') for i in df.columns])
df.select(expr(f'''stack({len(df.columns)},{s})''')).show()
+------+----+
| col0|col1|
+------+----+
| id| 10|
| name| abc|
|salary| 100|
+------+----+
,
我不知道执行此操作的spark函数。您可以使用 expr(stack(...))或执行类似于this的操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。