我有下面的火星火数据帧,

enter image description here

我需要以以下方式转换数据帧,我需要将行透视为单独的列,并将其添加到相应的月份.

enter image description here

我try 了以下方法, df.groupBY("Month").pivot("col1").个 我没有得到想要的输出.

推荐答案

您可以使用pandas_api()在Spark DataFrame上启用Pandas API(不要与to_pandas()混淆):

sdf = (sdf.pandas_api()
          .melt('Month', var_name='Col_name', value_name='Value')
          .to_spark())

输出:

>>> sdf.show()
+-----+--------+-----+
|Month|Col_name|Value|
+-----+--------+-----+
|    1|    Col1|   10|
|    1|    Col2|   20|
|    1|    Col3|   30|
|    1|    Col4|   40|
|    2|    Col1|   20|
|    2|    Col2|   30|
|    2|    Col3|   50|
|    2|    Col4|   60|
|    3|    Col1|   30|
|    3|    Col2|   50|
|    3|    Col3|   60|
|    3|    Col4|   70|
|    4|    Col1|   30|
|    4|    Col2|   40|
|    4|    Col3|   50|
|    4|    Col4|   80|
+-----+--------+-----+

Sql相关问答推荐

Postgresql在加入时显示重复的行

SQL Google Sheets:UNIQUE/DISTINCT和编码查询函数

使用交叉应用透视表在SQL中转换分段时间段&

用于动态查询情况的存储过程常识模式

如何在PostgreSQL中的一列中添加两个文本?

PostgreSQL:使用JSONB中的字段使用jsonb_to_Records()填充记录

SQL Select 最小优先级

使用Kotlin Exposed SQL DSL Select 多个值并排序

判断序列索引处的序列是否完整

如何将`now()`作为SQL插入语句的一部分?

基于是否具有某些数据的关联表覆盖SELECT语句中的列值

SQL将三个表中的三列组合为一列

Postgres jsonpath运算符的变量替换,如_regex?

将用户授予另一个用户不授予权限

聚合内部的条件在哪里?

列(值不为空)到其他有序列

什么是 100.它与 100 有什么区别?

PostgreSQL 中将数据从 JSONB 类型转换为 Array 类型

REGEXP_SUBSTR使用方法

As400 (IBM i) SQL 表 QSYS2.SYSTABLES 上的元数据