如何在Spark数据框的多个列上进行旋转?

阿舒托什

我们如何在数据框中的多个列上进行透视。例如,此处提到的示例https://spark.apache.org/docs/latest/sql-ref-syntax-qry-select-pivot.html

SELECT * FROM person
    PIVOT (
        SUM(age) AS a, AVG(class) AS c
        FOR (name, age) IN (('John', 30) AS c1, ('Mike', 40) AS c2)
    );

此处枢轴是根据(名称,年龄)完成的。我们不能在Spark Scala的支点方法中传递多个参数,因为它只希望将一个列名作为参数。我们如何对数据框执行类似的操作?

麦克

您可以将数组列传递给pivot

val df2 = df.groupBy("id","address")
            .pivot(array("name","age"), 
                   Seq(array(lit("John"),lit("30")).as("c1"), 
                       array(lit("Mike"),lit("40")).as("c2")))
            .agg(sum('age).as("a"), avg('class).as("c"))

df2.show
+---+-------+----+----+----+----+
| id|address|c1_a|c1_c|c2_a|c2_c|
+---+-------+----+----+----+----+
|200|Street2|null|null|null|null|
|100|Street1|30.0| 1.0|null|null|
|400|Street4|null|null|null|null|
|300|Street3|null|null|null|null|
+---+-------+----+----+----+----+

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在数据框列上进行迭代时,如何生成多个单独的列表

Pandas groupby,如何在多个列上进行多个聚合?

如何在Pandas数据框中的列上进行迭代和执行操作

如何在熊猫数据框的列上进行迭代以运行回归

如何在数据框中的列上进行迭代以更改其值

使用dplyr或reshape2在数据框的多个列上进行卡方统计

在数据框的多个列上进行分位数排序并变异结果

在数据框中的多个列上进行相同合并的更有效方法?

如何在VARCHAR列上进行分区

如何在 XML 列上进行 PIVOT?

如何在特定的列上进行操作?

在spark数据帧的同一列上进行多个聚合操作

在基于Spark Dataframe的API中的多个列上进行过滤

如何在数据框中的多个列上运行函数?

在数据框中的列上进行迭代

SQLAlchemy-如何在多个列上进行非重复计数

加入后如何在多个列上进行区分,然后为每个组排序并选择最新的?

SQL Server在多个列上进行数据透视

在多个汇总列上进行数据透视

如何在Slick中的Option [Boolean]列上进行过滤

如何在多列上进行INNER JOIN

如何在熊猫多索引内的列上进行操作

如何在Freemarker序列上进行投影以提取属性?

如何在PostgreSQL的结果列上进行累加和运算?

如何在 SQL-Server 多列上进行透视?

如何在Vertica中的varchar列上进行范围分区

如何在logstash上进行多个输出?

使用Pandas在列上进行多个聚合

在多个阵列上进行Numpy广播