python如何使用spark操作hive

文章目录


1、服务启动

bash 复制代码
# 启动hdfs和yarn
start-all.sh
# 日志服务也需要启动一下
mapred --daemon start historyserver
# 启动spark的日志服务
/opt/installs/spark/sbin/start-history-server.sh
#启动hive的metastore服务
h-server start metastore

2、修改配置

bash 复制代码
cd /opt/installs/spark/conf
# 新增:hive-site.xml
vi hive-site.xml
bash 复制代码
# 在这个文件中,编写如下配置:
<?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

xsync是一个自己编写的shell脚本,脚本编写详情链接:
大数据集群搭建以及使用过程中几个实用的shell脚本

3、验证

linux黑窗口进入spark:

bash 复制代码
/opt/installs/spark/bin/pyspark --master local[2]

进入后,通过内置对象spark,查询hive数据库或者表:

bash 复制代码
spark.sql("show databases").show()
spark.sql("select * from mydb01.student").show()

4、开发环境编写代码操作hive

其中环境需要修改成自己的路径:

python 复制代码
import os
import re

from pyspark.sql import SparkSession

if __name__ == '__main__':
    # 配置环境
    os.environ['JAVA_HOME'] = 'D:/devs/javajdk/jdk8'
    # 配置Hadoop的路径,就是前面解压的那个路径
    os.environ['HADOOP_HOME'] = 'D:/learn_tools/hadoop-3.3.1'
    # 配置base环境Python解析器的路径
    os.environ['PYSPARK_PYTHON'] = 'D:/learn_apps/anaconda/python.exe'  # 配置base环境Python解析器的路径
    os.environ['PYSPARK_DRIVER_PYTHON'] = 'D:/learn_apps/anaconda/python.exe'
    os.environ['HADOOP_USER_NAME'] = 'root'

    spark = SparkSession \
        .builder \
        .appName("HiveAPP") \
        .master("local[2]") \
        .config("spark.sql.warehouse.dir", 'hdfs://node01:9820/user/hive/warehouse') \
        .config('hive.metastore.uris', 'thrift://node01:9083') \
        .config("spark.sql.shuffle.partitions", 2) \
        .enableHiveSupport() \
        .getOrCreate()

    # 查询所有数学课程成绩大于语文课程成绩的学生学号
    resultDf = spark.sql("""
            select * from mydb01.t1
    """)

    resultDf.show()

    spark.stop()
相关推荐
yaoxin5211231 小时前
462. Java 反射 - 获取声明类与封闭类
java·开发语言·python
中微极客2 小时前
解锁LLM开发全栈能力:Python + LangChain + RAG 工程实战指南
人工智能·python·langchain
hhzz2 小时前
Barbershop:基于GAN和分割Mask的图像合成技术——从理论到实战全解析
图像处理·人工智能·python·深度学习·计算机视觉
Ulyanov3 小时前
雷达导引头Python仿真框架:GPU加速、6-DOF模型与半实物仿真接口
开发语言·python·雷达信号处理·雷达导引头
列逍4 小时前
博客系统测试
自动化测试·python·性能测试
星云开发5 小时前
拒绝无效加班!用Python打造自动化办公流,附Word/PDF互转硬核代码
python
dream_home84075 小时前
图像算法模型NPU适配与算法服务实战指南
人工智能·python·算法·npu 图像服务
AIGS0015 小时前
跨越语义鸿沟:企业本体语义平台的构建与落地
java·人工智能·python·机器学习·人工智能ai大模型应用
李可以量化5 小时前
PTrade 量化策略实战:二八轮动策略深度解析(下)
python
Mx_coder5 小时前
8年Java开发者AI转型第二周:RAG检索优化-从60%到90%准确率的3个关键技巧 (Day 13-14)
人工智能·python