我正在尝试转换一个对象类型的数据帧,并想要返回一个数据帧对象(在它被转置之后):

并转到这方面:

我需要转置的对象保持火花数据框架。
谢谢!
发布于 2020-07-01 22:57:09
看看这个。您可以使用groupby和pivot。请注意,我重命名了name列,因为一旦name值被旋转,它与数据就不明确了。
df.show()
# +------------+-----+
# | name|value|
# +------------+-----+
# | Name| str|
# |lastActivity| date|
# | id| str|
# +------------+-----+
df1 = df.withColumnRenamed("name", "name_val").groupBy("name_val").pivot("name_val").agg(F.first("value"))
df1.show()
# +------------+----+----+------------+
# | name_val|Name| id|lastActivity|
# +------------+----+----+------------+
# | Name| str|null| null|
# | id|null| str| null|
# |lastActivity|null|null| date|
# +------------+----+----+------------+
df1.select(*[F.first(column,ignorenulls=True).alias(column) for column in df1.columns if column not in 'name_val']).show()
#
# +----+---+------------+
# |Name| id|lastActivity|
# +----+---+------------+
# | str|str| date|
# +----+---+------------+https://stackoverflow.com/questions/62686280
复制相似问题