九十一、Spark-SparkSQL(多数据源处理)

简介: 九十一、Spark-SparkSQL(多数据源处理)

读取JSON文件,以JSON,CSV,jdbc格式写出


数据展示


80.png


代码


package org.example.SQL
import org.apache.log4j.{Level, Logger}
import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}
import java.util.Properties
object sql_DataSource { //支持外部数据源
  //支持的文件数据格式:text/json/csv/parquet/orc...
  def main(args: Array[String]): Unit = {
    //不打印日志
    Logger.getLogger("org").setLevel(Level.ERROR)
    val spark: SparkSession = SparkSession.builder().appName("test2")
      .master("local[*]").getOrCreate()
    val sc = spark.sparkContext
    val df1: DataFrame = spark.read.json("data/input/json")
    df1.printSchema()
    df1.show()
    df1.coalesce(1).write.mode(SaveMode.Overwrite).json("data/output/json")
    df1.coalesce(1).write.mode(SaveMode.Overwrite).csv("data/output/csv")
    val prop = new Properties()
    prop.setProperty("user", "root")
    prop.setProperty("password", "123456")
    df1.coalesce(1).write.mode(SaveMode.Overwrite).jdbc("jdbc:mysql://localhost:3306/bigdata?characterEncoding=UTF-8", "person", prop)
    //如果没有,表自动创建
    spark.stop()
  }
}

约束


root
 |-- age: long (nullable = true)
 |-- id: long (nullable = true)
 |-- name: string (nullable = true)

数据打印


+---+---+--------+
|age| id|    name|
+---+---+--------+
| 20|  1|zhangsan|
| 29|  2|    lisi|
| 25|  3|  wangwu|
| 30|  4| zhaoliu|
| 35|  5|  tianqi|
| 40|  6|    kobe|
+---+---+--------+

结果文件输出


json


81.png


csv


82.png


jdbc


83.png



相关文章
|
7月前
|
SQL 分布式计算 Java
Spark 基础教程:wordcount+Spark SQL
Spark 基础教程:wordcount+Spark SQL
71 0
|
分布式计算 Spark
|
SQL 分布式计算
SparkSQL实践
SparkSQL实战:统计用户及商品数据指标,包含以下三张表
176 0
SparkSQL实践
|
SQL HIVE
九十四、Spark-SparkSQL(整合Hive)
九十四、Spark-SparkSQL(整合Hive)
九十四、Spark-SparkSQL(整合Hive)
|
分布式计算 Apache Spark
|
分布式计算 资源调度 DataWorks
MaxComputeSpark Spark 与 SparkSQL 对比分析及使用注意事项 | 学习笔记
快速学习 MaxComputeSpark Spark 与 SparkSQL 对比分析及使用注意事项
288 0
|
分布式计算 数据库 Spark
Spark介绍及Spark多数据源分析
开源大数据处理首选Spark,Spark引擎助力数据构架升级,大数据构架分为多种系统,如:流式处理系统、离线分析系统、算法分析系统、交互式分析系统,通过阿里多模型数据库专家沐远的讲解学习Spark并解决各种业务问题。
3026 0
|
SQL 存储 分布式计算
sparkSQL实战详解
sparkSQL实战详解 如果要想真正的掌握sparkSQL编程,首先要对sparkSQL的整体框架以及sparkSQL到底能帮助我们解决什么问题有一个整体的认识,然后就是对各个层级关系有一个清晰的认识后,才能真正的掌握它 本篇博客主要是对sparkSQL实战进行讲解和总结,而不是对sparkSQL源码的讲解,如果想看源码的请绕道。
1548 0