假设我们有以下 Spark DataFrame:

+---+-------+-----+
|id |name   |age  |
+---+-------+-----+
|1  |Alice  |25   |
|2  |Bob    |30   |
|3  |Charlie|35   |
+---+-------+-----+

我们想要将其转换为以下实体类的列表:

case class Person(id: Int, name: String, age: Int)
val people = List(
  Person(1, "Alice", 25),
  Person(2, "Bob", 30),
  Person(3, "Charlie", 35)
)

我们可以使用 Spark 的 map 函数将每一行转换为一个 Person 实例,然后使用 collect 函数将结果收集到本地。以下是完整的代码:

import spark.implicits._

val df = Seq(
  (1, "Alice", 25),
  (2, "Bob", 30),
  (3, "Charlie", 35)
).toDF("id", "name", "age")

case class Person(id: Int, name: String, age: Int)

val people = df.map(row => Person(row.getInt(0), row.getString(1), row.getInt(2))).collect.toList

这将返回以下列表:

List(
  Person(1, "Alice", 25),
  Person(2, "Bob", 30),
  Person(3, "Charlie", 35)
)
spark dataframe 转list 实体类 scala

原文地址: https://www.cveoy.top/t/topic/ZGK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录