【问题标题】:Round all columns in dataframe - two decimal place pyspark舍入数据框中的所有列 - 两位小数
【发布时间】:2020-12-22 17:03:49
【问题描述】:

我对数据框中的所有列都有此命令,以四舍五入到小数点后 2 位:

data = data.withColumn("columnName1", func.round(data["columnName1"], 2))

我不知道如何通过一个命令来舍入所有数据框(不是每一列都分开)。有人可以帮我吗?我不想用不同的列名使用相同的命令 50 次。

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql


    【解决方案1】:

    没有用于将所有函数应用于列的函数或命令,但您可以迭代。

    +-----+-----+
    | col1| col2|
    +-----+-----+
    |1.111|2.222|
    +-----+-----+
    
    df = spark.read.option("header","true").option("inferSchema","true").csv("test.csv")
    
    for c in df.columns:
        df = df.withColumn(c, round(c, 2))
        
    df.show()
    
    +----+----+
    |col1|col2|
    +----+----+
    |1.11|2.22|
    +----+----+
    

    【讨论】:

      猜你喜欢
      • 2021-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 2015-07-31
      • 2011-01-22
      • 2011-03-09
      相关资源
      最近更新 更多