spark ds<->df

本文介绍如何在Apache Spark中实现DataFrame(DF)与Dataset(DS)之间的转换,并通过具体示例展示了转换过程及结果。文章首先创建了一个SparkSession实例,接着读取JSON文件生成DataFrame,再将DataFrame转换为Dataset进行操作,最后又将Dataset转换回DataFrame。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import org.apache.spark.sql.SparkSession

object DF2DS1 {

  case class Employee(name: String, age: Long, depId: Long, gender: String, salary: Long)
  def main(args: Array[String]): Unit = {
    println("astron")
    val spark = SparkSession
      .builder()
      .master("local")
      .appName("star")
      .getOrCreate()
    import spark.implicits._
    // DF->DS
    val demoDf = spark.read.json("d://employee.json")
    println(demoDf)
    //demoDf.printSchema()
    val demoDs = demoDf.as[Employee]
    println(demoDs)
    //demoDs.printSchema()

    //DS->DF
    val newDemoDf = demoDs.toDF();
    println(newDemoDf)
    //newDemoDf.printSchema()
  }
astron
[age: bigint, depId: bigint ... 3 more fields]
[age: bigint, depId: bigint ... 3 more fields]
[age: bigint, depId: bigint ... 3 more fields]
root
 |-- age: long (nullable = true)
 |-- depId: long (nullable = true)
 |-- gender: string (nullable = true)
 |-- name: string (nullable = true)
 |-- salary: long (nullable = true)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值