PySpark:将数据透视表列转换为单行

时间:2018-10-15 16:20:31

标签: python apache-spark dataframe pyspark

我正在尝试在pyspark中透视一个简单的数据框,并且我必须缺少一些东西。我有以下形式的数据框df:

+----+----+
|Item| Key|
+----+----+
|   1|   A|
+----+----+
|   2|   A|
+----+----+

我尝试将其围绕诸如

这样的商品
df.groupBy("Item").\
        pivot("Item", ["1","2"]).\
        agg(first("Key"))

我收到:

+----+----+----+
|Item|   1|   2|
+----+----+----+
|   1|   A|null|
+----+----+----+
|   2|null|   A|
+----+----+----+

但是我想要的是:

+----+----+
|   1|   2|
+----+----+
|   A|   A|
+----+----+

我如何防止Item列保留在我的输出数据透视表中,我认为这会弄乱我的结果吗?我正在运行Spark 2.3.2和Python 3.7.0

1 个答案:

答案 0 :(得分:1)

尝试不定义汇总列

>>> df.show()
+----+---+
|Item|Key|
+----+---+
|   1|  A|
|   2|  A|
+----+---+

>>> df.groupBy().pivot("Item", ["1","2"]).agg(first("Key")).show()
+---+---+
|  1|  2|
+---+---+
|  A|  A|
+---+---+