九十一、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



相关文章
|
5月前
|
SQL 机器学习/深度学习 分布式计算
Spark5:SparkSQL
Spark5:SparkSQL
59 0
|
26天前
|
SQL 分布式计算 大数据
Paimon 与 Spark 的集成(二):查询优化
通过一系列优化,我们将 Paimon x Spark 在 TpcDS 上的性能提高了37+%,已基本和 Parquet x Spark 持平,本文对其中的关键优化点进行了详细介绍。
117434 26
|
5月前
|
SQL 分布式计算 大数据
Paimon与Spark的集成(一)
Spark 已经成为了大数据领域软件栈中必不可少的组成部分。作为数据湖领域新起的 Paimon,与Spark的深度、全面的集成也将为 Paimon 在准实时场景、离线湖仓场景提供了便利。本文主要介绍一些在 Paimon 新版本中基于 Spark 计算引擎支持的主要功能。
215 0
|
10月前
|
存储 SQL 分布式计算
Apache Hudi初探(二)(与spark的结合)
Apache Hudi初探(二)(与spark的结合)
127 0
|
10月前
|
分布式计算 Apache Spark
Apache Hudi初探(六)(与spark的结合)
Apache Hudi初探(六)(与spark的结合)
151 0
|
10月前
|
分布式计算 Apache Spark
Apache Hudi初探(与spark的结合)
Apache Hudi初探(与spark的结合)
94 0
|
10月前
|
SQL 分布式计算 Apache
Apache Hudi初探(七)(与spark的结合)
Apache Hudi初探(七)(与spark的结合)
79 0
|
10月前
|
分布式计算 Apache Spark
Apache Hudi初探(五)(与spark的结合)
Apache Hudi初探(五)(与spark的结合)
176 0
|
10月前
|
分布式计算 Java Apache
Apache Hudi初探(四)(与spark的结合)
Apache Hudi初探(四)(与spark的结合)
66 0
|
10月前
|
分布式计算 Apache Spark
Apache Hudi初探(三)(与spark的结合)
Apache Hudi初探(三)(与spark的结合)
52 0