zoukankan      html  css  js  c++  java
  • RDD-DF-DS相互转换

    package cn.itcast.sql
    
    import org.apache.spark.SparkContext
    import org.apache.spark.rdd.RDD
    import org.apache.spark.sql.{DataFrame, Dataset, Row, SparkSession}
    
    /**
     * Author itcast
     * Desc 演示SparkSQL-RDD_DF_DS相互转换
     */
    object Demo03_RDD_DF_DS {
      def main(args: Array[String]): Unit = {
        //TODO 0.准备环境
        val spark: SparkSession = SparkSession.builder().appName("sparksql").master("local[*]").getOrCreate()
        val sc: SparkContext = spark.sparkContext
        sc.setLogLevel("WARN")
    
        //TODO 1.加载数据
        val lines: RDD[String] = sc.textFile("data/input/person.txt")
    
        //TODO 2.处理数据
        val personRDD: RDD[Person] = lines.map(line => {
          val arr: Array[String] = line.split(" ")
          Person(arr(0).toInt, arr(1), arr(2).toInt)
        })
    
        //转换1:RDD-->DF
        import spark.implicits._
        val personDF: DataFrame = personRDD.toDF()
        //转换2:RDD-->DS
        val personDS: Dataset[Person] = personRDD.toDS()
        //转换3:DF-->RDD,注意:DF没有泛型,转为RDD时使用的是Row
        val rdd: RDD[Row] = personDF.rdd
        //转换4:DS-->RDD
        val rdd1: RDD[Person] = personDS.rdd
        //转换5:DF-->DS
        val ds: Dataset[Person] = personDF.as[Person]
        //转换6:DS-->DF
        //val df: DataFrame = personDS.toDF()
        val df: DataFrame = personDF.toDF()
    
    
    
    
        //TODO 3.输出结果
        personDF.printSchema()
        personDF.show()
        personDS.printSchema()
        personDS.show()
        rdd.foreach(println)
        rdd1.foreach(println)
    
        //TODO 4.关闭资源
        spark.stop()
      }
      case class Person(id:Int,name:String,age:Int)
    }
  • 相关阅读:
    PAT Advanced 1067 Sort with Swap(0, i) (25分)
    PAT Advanced 1048 Find Coins (25分)
    PAT Advanced 1060 Are They Equal (25分)
    PAT Advanced 1088 Rational Arithmetic (20分)
    PAT Advanced 1032 Sharing (25分)
    Linux的at命令
    Sublime Text3使用指南
    IntelliJ IDEA创建第一个Groovy工程
    Sublime Text3 安装ftp插件
    Sublime Text3配置Groovy运行环境
  • 原文地址:https://www.cnblogs.com/a155-/p/14504567.html
Copyright © 2011-2022 走看看