SparkSQL之加载与保存数据

18 篇文章 0 订阅
4 篇文章 0 订阅

SparkSQL之加载与保存数据


前言

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()用来指定保存的模式
在这里插入图片描述
代码如下(示例):

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

在这里插入图片描述
但是这个时候创建sparkSession的记得需要开启enableHiveSupport

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值