假设我有一个数据帧,我使用:
df.select(
df.col("id")
sql.functions.posexplode(df.col("a")).as("pos", "a")
)
然后我对" a"进行了一些改造。进入" b",我想要检索" b"的原始列表。我最好的是这样的:
df.select(
df.col("id"),
functions.map(
df.col("pos"),
df.col("b")
).as("indexed")
).groupBy(df.col("id")).agg(
functions.collect_list("indexed")
)
然后编写一个UDF来获取映射元素列表并将其转回单个列表。有没有办法通过从" pos"中订购collect_list来避免这样做?列?