Spark10- RDD转DataFrame的三种方式

一、手动直接转换

复制代码
  def rddToDf1(): Unit = {
    val conf = new SparkConf().setMaster("local[*]").setAppName("hello world")
    val spark = SparkSession.builder().config(conf).getOrCreate()
    import spark.implicits._
    val sc = spark.sparkContext
    val rdd: RDD[(String, Int)] = sc.parallelize(Array(("李四", 10), ("zs", 20), ("王无", 21)))
    rdd.toDF("name","age").show
  }

二、使用样例类转换

复制代码
  def rddToDf2(): Unit = {
    val conf = new SparkConf().setMaster("local[*]").setAppName("hello world")
    val spark = SparkSession.builder().config(conf).getOrCreate()
    import spark.implicits._
    val sc = spark.sparkContext
    val rdd: RDD[(String, Int)] = sc.parallelize(Array(("李四", 10), ("zs", 20), ("王无", 21)))
    val rdd2: RDD[User] = rdd.map(line => {
      User(line._1, line._2)
    })
    rdd2.toDF().show()
  }

  case class User(name: String, age: Int)

三、通过API转换

复制代码
  def rddToDf3(): Unit = {
     val conf = new SparkConf().setMaster("local[*]").setAppName("hello world")
    val spark = SparkSession.builder().config(conf).getOrCreate()
    val sc = spark.sparkContext
    val rdd: RDD[(String, Int)] = sc.parallelize(Array(("李四", 10), ("zs", 20), ("王无", 21)))
    val rowRdd: RDD[Row] = rdd.map(x => Row(x._1, x._2))
    val types = StructType(Array(StructField("name", StringType), StructField("age", IntegerType)))
    val frame: DataFrame = spark.createDataFrame(rowRdd, types)
    frame.show()

  }
相关推荐
yuezhilangniao1 天前
AI智能体全栈开发工程化规范 备忘 ~ fastAPI+Next.js
javascript·人工智能·fastapi
Guheyunyi1 天前
智能守护:视频安全监测系统的演进与未来
大数据·人工智能·科技·安全·信息可视化
发哥来了1 天前
主流AI视频生成商用方案选型评测:五大核心维度对比分析
大数据·人工智能
铅笔侠_小龙虾1 天前
Flutter Demo
开发语言·javascript·flutter
2501_944525541 天前
Flutter for OpenHarmony 个人理财管理App实战 - 账户详情页面
android·java·开发语言·前端·javascript·flutter
数研小生1 天前
做京东评论分析系统11年,京东评论数据接口解析
大数据
wangdaoyin20101 天前
若依vue2前后端分离集成flowable
开发语言·前端·javascript
金融小师妹1 天前
基于LSTM-GARCH-EVT混合模型的贵金属极端波动解析:黄金白银双双反弹的逻辑验证
大数据·人工智能·深度学习·机器学习
天天进步20151 天前
AI Agent 与流式处理:Motia 在生成式 AI 时代的后端范式
javascript
心柠1 天前
vue3相关知识总结
前端·javascript·vue.js