Spark SQL Java:反转functions.posexplode的最佳方法

时间:2017-02-11 23:36:53

标签: java apache-spark apache-spark-sql

假设我有一个数据帧,我使用:

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来避免这样做?列?

0 个答案:

没有答案