需求
项目有时候需要在dataframe开头添加字段,之前也没搜到好的案例。下面就写个相对简洁的方法。
实现
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions.{col, monotonically_increasing_id}
object SparkTest4 {
def main(args: Array[String]): Unit = {
val sc = SparkSession.builder().master(master = "local[4]").getOrCreate()
import sc.implicits._
var df = Seq(
(1, "First Value"),
(2, "Second Value")
).toDF("int_column", "string_column")
// 添加到末尾
df = df.withColumn("end_row_key", monotonically_increasing_id())
// 添加到开头
df = df.select(monotonically_increasing_id().as("start_row_key"), col("*"))
df.show()
}
}
结果
+-------------+----------+-------------+-----------+
|start_row_key|int_column|string_column|end_row_key|
+-------------+----------+-------------+-----------+
| 0| 1| First Value| 0|
| 1| 2| Second Value| 1|
+-------------+----------+-------------+-----------+

该博客分享了一种在Apache Spark的DataFrame中添加行号的方法,包括如何将行号添加到数据框的开头和末尾。示例代码展示了使用`monotonically_increasing_id`函数实现这一功能,并给出了操作后的数据展示。
3271





