scala - 如何将包含值 0...n 的列添加到 Spark 中的现有数据帧?

标签 scala apache-spark apache-spark-sql

我现有的数据框包含许多列。如何添加一个包含值 0...n-1 的列(其中 n 是我的数据框中的行数。当我没有任何数据框时我可以这样做,类似:spark.range(...).toDF.

最佳答案

您可以使用row_number函数并减去1以使其从0开始:

import org.apache.spark.sql.expressions.Window

val df1 = df.withColumn("new_col", row_number().over(Window.orderBy(lit(null))) - 1)

如果顺序很重要,您可以按数据框中的特定列代替 null 进行排序。

关于scala - 如何将包含值 0...n 的列添加到 Spark 中的现有数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66209202/

相关文章:

Scala:尾递归和 ListBuffer

python - Spark SQL Row_number() PartitionBy Sort Desc

python - 无法在 Linux 上打开 Pyspark Shell

python - PySpark:如何判断数据框的列类型

scala - Spark UDF 中的类型不匹配

java.io.FileNotFoundException : localhost/broadcast_1

scala - 如何在 Scala 中访问 Groovy 嵌套枚举?

scala - 如何在 Play Framework 中为 WebSocket 请求添加过滤器

scala - 有哪些类型级编程的例子?

apache-spark - Spark Sql JDBC 支持