SparkSQL之加载与保存数据

SparkSQL之加载与保存数据

文章目录

  • 前言
  • 一、使用步骤
    • 1.加载数据
    • 2.保存数据
    • 3.读取mysql和写入myslq
    • 4.Spark连接hive数据库


前言

sparkSQL可以加载与保存各种类型的数据


一、使用步骤

1.加载数据

spark.read.load 是sparkSQL默认加载数据的方式,默认是加载parquet文件,但是可以通过spark.sql.sources.default 修改

spark.read.format("…")[.option("…")].load("…"),通用数据加载方式

format来指定不同的数据格式,包括"csv"、“jdbc”、“json”、“orc”、“parquet"和"textFile”
option为参数,如果是jdbc,那么需要填入数据库的连接参数
直接在文件上进行查询: 文件格式.文件路径

scala>spark.sql("select * from json.`/opt/module/data/user.json`").show

spark SQL Spark 读取的 JSON 文件不是传统的 JSON 文件,每一行都应该是一个 JSON 串
如下:

{"name":"zhangsan","age":12}
{"name":"lisi","age":34}

2.保存数据

spark.write.save 通用保存数据方式,默认是保存为parquet文件,也是可以通过spark.sql.sources.default 修改
df.write.format("…")[.option("…")].save("…")通用数据保存方式
format指定数据保存的格式
option指定参数,如选择jdbc时,指定数据库
保存这里有一个重要的参数,mode()用来指定保存的模式
SparkSQL之加载与保存数据_第1张图片
代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

3.读取mysql和写入myslq

读取mysql中数据再写回mysql中,通过load的方式
请记得选择写入的模式

val df = sparkSesion.read.format("jdbc")
  .option("url", "jdbc:mysql://hadoop102:3306/test")
  .option("driver", "com.mysql.jdbc.Driver")
  .option("user", "root")
  .option("password", "000000")
  .option("dbtable", "user2")
  .load()

df.write.format("jdbc")
    .option("url","jdbc:mysql://hadoop102:3306/test")
    .option("driver","com.mysql.jdbc.Driver")
    .option("user","root")
    .option("password","000000")
    .option("dbtable","user")
    .mode(SaveMode.Append)
    .save()

4.Spark连接hive数据库

SparkSQL 最开始就是从hive中来的,只不过把mapreduce 换成了spark core,所以SparkSQL 默认内置了一个hive,
所以,如果要使用内部的hive,那么什么也不要做,就可以连接hive
在这里插入图片描述

但是如果需要外部的hive,那么需要:
1.把hive的 hive-site.xml 放入spark的conf下
2.把mysql的驱动放到spark的jar下,即可连接外部hive(前提是hdfs还有yarn已经启动了)
这个时候在spark-shell中用spark.sql() 执行的sql就是 外部的hdfs中hive了

当然这时也可以用 spark-sql 和Spark beeline来连接hive

ideal中连接hive
连接内置的hive,也是什么都不需要做
连接外部的hive,需要spark-hvie的依赖,mysql依赖,还需要把hive的配置文件hive-site.xml 文件放入resource目录下,即可访问外部的hive

SparkSQL之加载与保存数据_第2张图片
但是这个时候创建sparkSession的记得需要开启enableHiveSupport

你可能感兴趣的:(Spark,大数据,SparkSQL,spark,大数据,scala)