习题 13:Case Class 转 DataFrame

题目:定义 case class Person,读取 CSV 数据转换为 DataFrame,按家乡分组统计平均年龄。

import org.apache.spark.sql.SparkSession

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

object TestCaseClass {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().master("local").getOrCreate()
    import spark.implicits._

    val rdd = spark.sparkContext.textFile("input/data.txt")
    val df = rdd.map(line => line.split(","))
      .map(a => new Person(a(0), a(1).toInt, a(2)))
      .toDF()

    df.show()
    df.groupBy(df("home")).avg("age").show()
  }
}