spark读取hive和mysql的数据

读取hive数据

复制代码
本质上:SparkSQL访问了Metastore服务获取了Hive元数据,基于元数据提供的地址进行计算
启动以下服务:
start-dfs.sh
start-yarn.sh
mapred --daemon start historyserver
/opt/installs/spark/sbin/start-history-server.sh
hive-server-manager.sh start metastore

修改配置文件

复制代码
cd /opt/installs/spark/conf
新增:hive-site.xml
vi hive-site.xml

在这个文件中,编写如下配置:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://bigdata01:9083</value>
    </property>
</configuration>

接着将该文件进行分发:
xsync.sh hive-site.xml

import os

from pyspark.sql import SparkSession


if __name__ == '__main__':

    # 配置环境
    os.environ['JAVA_HOME'] = 'E:/java-configuration/jdk-8'
    # 配置Hadoop的路径,就是前面解压的那个路径
    os.environ['HADOOP_HOME'] = 'E:/applications/bigdata_config/hadoop-3.3.1/hadoop-3.3.1'
    # 配置base环境Python解析器的路径
    os.environ['PYSPARK_PYTHON'] = 'C:/Users/35741/miniconda3/python.exe'
    # 配置base环境Python解析器的路径
    os.environ['PYSPARK_DRIVER_PYTHON'] = 'C:/Users/35741/miniconda3/python.exe'
    os.environ['HADOOP_USER_NAME'] = 'root'

    spark = SparkSession.builder \
             .master("local[2]") \
             .appName("第一个sparksql案例") \
             .config("spark.sql.warehouse.dir", 'hdfs://shucang:9820/user/hive/warehouse') \
             .config('hive.metastore.uris', 'thrift://shucang:9083') \
             .config("spark.sql.shuffle.partitions",2) \
             .enableHiveSupport() \
             .getOrCreate()

    spark.sql("select * from yhdb01.sql2_1").createOrReplaceTempView("sql2_1")
    spark.sql("select * from sql2_1").show()

    spark.stop()

spark读取mysql表数据

复制代码
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

在pyspark中放入mysql的驱动包

windows
找到工程中pyspark库包所在的环境,将驱动包放入环境所在的jars目录中
C:\Users\35741\miniconda3\Lib\site-packages\pyspark\jars

linux
cd /opt/installs/anaconda3/lib/python3.8/site-packages/pyspark/jars
需要在所有节点的pyspark下

import os

from pyspark.sql import SparkSession

if __name__ == '__main__':

    os.environ['JAVA_HOME'] = 'E:/java-configuration/jdk-8'
    # 配置Hadoop的路径,就是前面解压的那个路径
    os.environ['HADOOP_HOME'] = 'E:/applications/bigdata_config/hadoop-3.3.1/hadoop-3.3.1'
    # 配置base环境Python解析器的路径
    os.environ['PYSPARK_PYTHON'] = 'C:/Users/35741/miniconda3/python.exe'
    # 配置base环境Python解析器的路径
    os.environ['PYSPARK_DRIVER_PYTHON'] = 'C:/Users/35741/miniconda3/python.exe'
    
    spark = SparkSession.builder.master("local[2]").appName("spark案例").config("spark.sql.shuffle.partitions",2).getOrCreate()
    
    # 方式一:spark.read.jdbc
    dictUsername = {"user": "root", "password": "root"}
    empDf = spark.read.jdbc(url="jdbc:mysql://localhost:3306/mydb01",table="emp",properties=dictUsername)
    
    empDf.createOrReplaceTempView("emp")
    
    spark.sql("""
    select * from emp
    """).show()
    
    # 方式二:spark.read.format 最后需要 load一下
    empDf2 = spark.read.format("jdbc") \
              .option("driver", "com.mysql.cj.jdbc.Driver") \
              .option("url", "jdbc:mysql://localhost:3306/mydb01") \
              .option("dbtable", "emp") \
              .option("user","root") \
              .option("password","root").load()
    
    empDf2.createOrReplaceTempView("emp2")
    
    spark.sql("""
    select * from emp
    """).show()
相关推荐
小e说说5 小时前
拯救孩子学习兴趣大作战!这些软件超神了
学习
科研前沿5 小时前
镜像视界 CameraGraph™+多智能体:构建自感知自决策的全域空间认知网络技术方案
大数据·运维·人工智能·数码相机·计算机视觉
七颗糖很甜5 小时前
电离层对地基雷达测量精度的影响分析与校正方法
python
发哥来了5 小时前
AI视频生成模型选型指南:五大核心维度对比评测
大数据·人工智能·机器学习·ai·aigc
发哥来了5 小时前
AI驱动生产线的实际落地:一个东莞厂商的技术选型实录
大数据·人工智能·机器学习·ai·aigc
AC赳赳老秦5 小时前
知识产权辅助:用 OpenClaw 批量生成专利交底书 / 软著申请材料,自动校验格式与内容合规性
java·人工智能·python·算法·elasticsearch·deepseek·openclaw
dLYG DUMS6 小时前
DBeaver连接本地MySQL、创建数据库表的基础操作
数据库·mysql
小熊Coding6 小时前
Python2D射击冒险闯关游戏2.0版本
python·pygame
FYKJ_20106 小时前
springboot校园兼职平台--附源码02041
java·javascript·spring boot·python·eclipse·django·php
历程里程碑7 小时前
4 Git远程协作:从零开始,玩转仓库关联与代码同步(带实操代码讲解)
大数据·c++·git·elasticsearch·搜索引擎·gitee·github