【问题标题】:pivoting a single row dataframe where groupBy can not be applied在无法应用 groupBy 的情况下旋转单行数据框
【发布时间】:2022-11-26 11:57:12
【问题描述】:

我有一个这样的数据框:

inputRecordSetCount inputRecordCount suspenseRecordCount
166 1216 10

我想让它看起来像

operation value
inputRecordSetCount 166
inputRecordCount 1216
suspenseRecordCount 10

我试过 pivot,但它需要一个 groupBy 字段。我没有任何 groupBy 字段。我在 Scala 中找到了 Stack 的一些参考。但不确定如何在 PySpark 中使用它。任何帮助,将不胜感激。谢谢你。

【问题讨论】:

    标签: apache-spark pyspark


    【解决方案1】:

    可以使用this tutorial中提到的stack()操作:

    df = spark.createDataFrame(data=[[166,1216,10]], schema=['inputRecordSetCount','inputRecordCount','suspenseRecordCount'])
    
    cols = [f'"{c}", {c}' for c in df.columns]
    exprs = f"stack({len(cols)}, {', '.join(str(c) for c in cols)}) as (operation, value)"
    df = df.selectExpr(exprs)
    
    df.show()
    
    +-------------------+-----+
    |          operation|value|
    +-------------------+-----+
    |inputRecordSetCount|  166|
    |   inputRecordCount| 1216|
    |suspenseRecordCount|   10|
    +-------------------+-----+
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-23
      • 2021-02-16
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      相关资源
      最近更新 更多