如何使用数据透视表创建新列?

时间:2018-04-15 23:09:05

标签: scala apache-spark dataframe spark-dataframe

我有一个数据框,其中typecol列的值为2233。 然后我使用以下代码制作数据透视表:

var result = df
        .groupBy(col("product_id"))
        .pivot("typecol")
        .agg(count("*"))
        .na.fill(0)
        .withColumnRenamed("22", "A_type")
        .withColumnRenamed("33", "B_type")

但是,如果22中不存在值33df,则不会创建列A_typeB_type。如何使用值0创建它们?

1 个答案:

答案 0 :(得分:2)

您可以在const acceptableItems = test.filter(filename => { // keep the item in the array if it includes png return filename.includes('png') ... // OR. remove it from the new array if it includes png return !filename.includes('png') }) 中组合您想要无条件地与其最终列名称一起旋转的列,并​​使用Map遍历地图以相应地重命名和归零,如下所示:

foldLeft