Spark SQL(一)——认识SparkSQL

1、是什么

  • SparkSQL是Spark的一个模块,用于处理结构化数据,提供了新的数据抽象DataFrame和Dataset

特点

  • 兼容性 可以在同一个Spark任务中混合使用SQL处理和算子编程, SparkSQL中RDD可以进行算子编程,DF和DS可以支持SQL操作,RDD、DF、DS之间可以互相转换。

  • 统一的数据访问 SparkSQL可以使用相同的API访问各种常见的数据源

    • 文本格式: text csv json

    • 列式存储: parquet orc

    • 数据库: jdbc

  • 完全兼容Hive 可以使用SparkSQL读取已经存在的hive数据仓库,由于SparkSQL内部集成了Hive的所有功能模块,所以对Hive的库和表,UDF等完全兼容

  • 提供标准数据库连接 SparkSQL提供JDBC\ODBC连接,用于提供客户端的远程访问

2、认识新的API

  • 程序入口: SparkSession

  • 数据抽象: DataFrame Dataset

    package com.zch.spark.sql.exercise
    ​
    import org.apache.spark
    import org.apache.spark.sql
    import org.apache.spark.sql.{DataFrame, SparkSession}
    ​
    /**
     * Author: zhaoHui
     * Date: 2021/12/20
     * Time: 15:05
     * Description: 
     */
    object SparkSQL_Exercise_Demo01 {
      def main(args: Array[String]): Unit = {
        // 获取SparkSession对象
        val spark = new sql.SparkSession.Builder()
          .appName("demo01")
          .master("local[2]")
          .getOrCreate()
    ​
        // 使用SparkSession,创建DataFrame
        val df:DataFrame = spark.read
          .format("json")
          .load("C:\\Users\\Administrator\\Desktop\\employees.json")
    ​
        // 创建临时图标
        df.createTempView("t1")
    ​
        // 使用SQL语句
        val dataFrame = spark.sql(
          """
            |select * from `t1`
            |""".stripMargin)
    ​
        // 展示查询信息
        dataFrame.show()
    ​
        // 将查询结果以 Excel 保存到本地
        dataFrame.write.format("csv").save("C:\\Users\\Administrator\\Desktop\\test")
    ​
      }
    ​
    }
    ​
     SparkSQL默认使用parquet作为输入输出格式
     也支持如下几个常用格式
    文本格式: text csv json
    列式存储: parquet orc
    数据库:   jdbc
    ​
  • SparkSQL 数据输入输出语法

  • 输出为不同的格式

    输出 dataFrame.write .format("指定输出格式") .mode(SaveMode) //设置输出的存储模式 .save("输出路径")

    // json
    dataFrame
      .write
      .format("json")
      .save("C:\\Users\\Administrator\\Desktop\\json")
    ​
    // parquet
    dataFrame
      .write
      .format("parquet")
      .save("C:\\Users\\Administrator\\Desktop\\parquet")
    ​
    // orc
    dataFrame
      .write
      .format("orc")
      .save("C:\\Users\\Administrator\\Desktop\\orc")
    ​
    // default
    dataFrame
      .write
      .save("C:\\Users\\Administrator\\Desktop\\default")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值