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()

  }
相关推荐
这是个栗子11 分钟前
前端开发中的常用工具函数(十):JavaScript 数组遍历
javascript·map·遍历·filter·foreach·for·for...of
FYKJ_201019 分钟前
django学习成绩预警系统10905
java·javascript·spring boot·python·spark·django·php
云浪21 分钟前
给大模型装上"手":三分钟看懂 AI Agent 的 Tool 工具调用
javascript·人工智能·node.js
风月说与山鬼21 分钟前
六、React事件
前端·javascript·react.js
岁岁种桃花儿23 分钟前
Vue核心语法第十四篇:列表过滤
前端·javascript·vue.js
晓得迷路了23 分钟前
栗子前端技术周刊第 143 期 - npm 攻击事件、Bun 1.4...
前端·javascript
常宇佳30 分钟前
vue3 实战系列之踩过的一些坑
javascript·vue.js·elementui
数据智研31 分钟前
【数据分享】中国农产品价格调查年鉴(2004-2025)
大数据·人工智能·数据分析·可视化·数据可视化
逸Y 仙X32 分钟前
Spark SQL
java·大数据·sql·spark
千里码aicood39 分钟前
大数据智慧农业场景下的种植技术可视化展示平台设计与实现
大数据