将重复值旋转到两个不同的列中
我将以下数据导入到Pyspark数据框架中:
from pyspark.sql import SparkSession
from pyspark.sql.functions import *
from pyspark.sql.types import *
spark = SparkSession.builder.master("local[4]").appName("pyspark").getOrCreate()
df = spark.read.csv("example.csv")
df.show()
#+--+------+
#|id|answer|
#+--+------+
#| 1|a |
#| 1|b |
#| 2|c |
#| 2|d |
#| 3|e |
#| 4|f |
#| 4|g |
#+--+------+
某些ID可能已经重复,有些ID可能不会。 我想拥有以下输出:
+--+------+------+
|id|first |second|
+--+------+------+
| 1|a |b |
| 2|c |d |
| 3|e |Null |
| 4|f |g |
+--+------+------+
I have the following data imported into PySpark dataframe:
from pyspark.sql import SparkSession
from pyspark.sql.functions import *
from pyspark.sql.types import *
spark = SparkSession.builder.master("local[4]").appName("pyspark").getOrCreate()
df = spark.read.csv("example.csv")
df.show()
#+--+------+
#|id|answer|
#+--+------+
#| 1|a |
#| 1|b |
#| 2|c |
#| 2|d |
#| 3|e |
#| 4|f |
#| 4|g |
#+--+------+
Some id might have duplicated, some might not.
I would like to have the following output:
+--+------+------+
|id|first |second|
+--+------+------+
| 1|a |b |
| 2|c |d |
| 3|e |Null |
| 4|f |g |
+--+------+------+
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我将使用
groupby
并使用collect_list
进行汇总。我添加了array_sort
仅用于更多的确定性。I would use
groupBy
and aggregate usingcollect_list
. I've addedarray_sort
just for more determinism.