spark将数据输出到hive或mysql中

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

import os

from pyspark.sql import SparkSession

"""
------------------------------------------
  Description : TODO:
  SourceFile : 02、spark
  Author  : null
  Date  : 2024/11/6
-------------------------------------------
"""

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已经知道hive有什么数据库 ,该数据库中有什么表了,但是没有use
    spark.sql("select * from yhdb01.sql2_1").createOrReplaceTempView("sql2_1")
    hiveDf = spark.sql("select * from sql2_1")
    
    # 写入hive的数据库中
    # 需要有库吗 ------需要 需要有这个表吗 ------ 不需要 但是记得判空 hive中没有空类型
    hiveDf.write.saveAsTable("yhdb01.sql22_1",mode="overwrite")

    spark.stop()

mysql

复制代码
# 不需要事先将表创建好

import os

from pyspark.sql import SparkSession

"""
------------------------------------------
  Description : TODO:
  SourceFile : 02、spark
  Author  : null
  Date  : 2024/11/6
-------------------------------------------
"""

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("第一个sparksql案例") \
        .config("spark.sql.shuffle.partitions", 2) \
        .getOrCreate()
    df = spark.read.json("../../data/sql/person.json")
    df.createOrReplaceTempView("person")
    
    # 获取一个dataFrame
    dfMysql = spark.sql("""
    select * from person
    """)
    
    # 第一种方式:format
    dfMysql.write.format("jdbc") \
    .option("driver", "com.mysql.cj.jdbc.Driver") \
    .option("url", "jdbc:mysql://localhost:3306/mydb01?characterEncoding=UTF-8") \
    .option("user", "root") \
    .option("password", "root") \
    .option("dbtable", "person") \
    .save(mode="overwrite")
    # append
    
    
    
    # 第二种方式:jdbc
    dictUsername = {"user": "root", "password": "root"}
    dfMysql.write.jdbc(url="jdbc:mysql://localhost:3306/mydb01?characterEncoding=UTF-8",table="person",properties=dictUsername,mode="append")


    spark.stop()
相关推荐
电商API_1800790524720 小时前
淘宝商品视频提取API全解析:从授权到落地实战
爬虫·python·信息可视化·数据分析·音视频
计算机程序设计小李同学20 小时前
基于 Flask 的养猪场信息模拟系统
后端·python·flask
Iridescent112120 小时前
Iridescent:Day38
python
熬夜敲代码的小N20 小时前
2026 职场生存白皮书:Gemini Pro 实战使用指南
人工智能·python·ai·职场和发展
q_191328469520 小时前
基于SpringBoot+Vue.js的高校竞赛活动信息平台
vue.js·spring boot·后端·mysql·程序员·计算机毕业设计
semantist@语校20 小时前
第五十八篇|从城市节律到制度密度:近畿日本语学院的数据建模与关西语校结构工程
大数据·服务器·数据库·人工智能·百度·ai·知识图谱
Franklin20 小时前
移植一个Pycharm的复杂项目:
ide·python·pycharm
94621931zyn620 小时前
外观设置 - Cordova 与 OpenHarmony 混合开发实战
笔记·python
彼岸花开了吗20 小时前
构建AI智能体:六十五、模型智能训练控制:早停机制在深度学习中的应用解析
人工智能·python
BoBoZz1920 小时前
3D 医学扫描同时显示患者的皮肤、骨骼的 3D 模型(通过等值面提取),以及三个正交切片
python·vtk·图形渲染·图形处理