对Dataframe中的所有列进行舍入-小数点后两位

cwtwac6a  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(738)

我对数据框中的所有列执行以下命令,将其四舍五入到小数点后2位:

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

我不知道如何用一个命令(不是每一列都分开)来包围所有的Dataframe。有人能帮帮我吗?我不想用不同的列名使用相同的命令50次。

kzmpq1sx

kzmpq1sx1#

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

+-----+-----+
| 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|
+----+----+

相关问题