如何在 Spark Scala 中迭代 Dataframe 中的每一列

赛斯尔先生

假设我有一个包含多列的数据框,我想迭代每一列,进行一些计算并更新该列。有什么好的方法可以做到这一点吗?

流氓

更新在下面的示例中,我有一个包含两个整数列 c1 和 c2 的数据框。每列的值除以其列的总和。

import org.apache.spark.sql.expressions.Window
val df = Seq((1,15), (2,20), (3,30)).toDF("c1","c2")
val result = df.columns.foldLeft(df)((acc, colname) => acc.withColumn(colname, sum(acc(colname)).over(Window.orderBy(lit(1)))/acc(colname)))

输出

scala> result.show()
+---+------------------+
| c1|                c2|
+---+------------------+
|6.0| 4.333333333333333|
|3.0|              3.25|
|2.0|2.1666666666666665|
+---+------------------+

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spark Scala:如何根据Vector的每个位置更新DataFrame的每一列

如何在Apache Spark(scala)中迭代RDD

Spark Scala:如何在深度嵌套的DataFrame中替换字段

如何用Pandas Dataframe中的每一列绘制每一列?

如何在不关心列是什么的情况下使用 Scala 的 DataFrame 比较表中的每一列?

如何在Spark Scala中的Spark Dataframe中的struct中的元素中添加元素

如何在Spark / Scala中对数据框的一列的值求和

如何在 Spark Dataframe 上的字符串中添加一列字符的索引?

在 Spark DataFrame 中添加一个新列,其中包含一列的所有值的总和 - Scala/Spark

如何避免在Spark Scala中迭代使用withColumn?

如何在Spark DataFrame,Scala中将行转换为列

如何在Scala Spark中舍入小数

如何在Dataframe Spark Scala中对列表进行分组和合并

如何在Scala / Spark中使用多个DataFrame中的多个工作表创建excel文件?

如何在Scala Spark中持久保存我们从dataFrame动态创建的列表

如何将数组的每一行分解为 Spark (Scala) 中的列?

如何在Scala中并行迭代地图?

如何在Scala / Spark数据框中的每一行使用withColumn带条件

如何在 Dataframe/Spark SQL/Spark Scala 中处理无效的 XML 字符串和无效的 JSON 字符串

Spark / Scala如何从前一列的值中减去当前列的值?

Scala-spark:如何随机选择一列具有不同大小的数组中的项

如何在Spark Scala中重命名struct中的列

如何在 spark scala 中检查 df 列中的 Luhn

如何为DataFrame中的每一列绘制箱线图?

在Spark Scala中重命名DataFrame的列名

Spark(Scala)-DataFrame中的还原爆炸

合并Spark Scala Dataframe中的行

在scala变量中存储Spark DataFrame值

如何在 Spark 中使用 scala 将 RDD[DataFrame] 中的所有 DataFrame 联合到一个 DataFrame 而不使用 for 循环?