spark&hive--练习2

需求:

在hive中创建对应表,并且导入数据,使用spark完成对应的查询

stu_name course score

张三 语文 98

张三 数学 95

张三 英语 89

李四 语文 97

李四 数学 88

李四 英语 90

1.hive建表语句,导入数据语句,从linux文件系统导入

2.使用sparksql查询上述表,期望结果如下,并且将计算结果添加到mysql

name 语文 数学 英语

张三 98 95 89

李四 97 88 90

1.hive建表语句,导入数据语句,从linux文件系统导入

sql 复制代码
create table student(
   stu_name   string,
   course     string,
   score      int
)
row format delimited
fields terminated by ',';

load data local inpath '/root/stu.txt' into table student;

select * from default.student;

2.使用sparksql查询上述表,期望结果如下,并且将计算结果添加到mysql

【注:表名前边加上数据库。如:default.student】

python 复制代码
from pyspark.sql import SparkSession

if __name__ == '__main__':
    spark = SparkSession.builder \
        .appName("测试") \
        .config("hive.metastore.uris", 'thrift://hadoop11:9083') \
        .enableHiveSupport() \
        .getOrCreate()


    df = spark.sql("""
        select stu_name,
               max(case when course='语文' then score else null end) chinese,
               max(case when course='数学' then score else null end) math,
               max(case when course='英语' then score else null end) english
        from default.student
        group by stu_name
    """)

    props = {'user': 'root', 'password': '123456', 'driver': 'com.mysql.jdbc.Driver'}
    df.write.jdbc(url='jdbc:mysql://hadoop11:3306/test1', table='df_student', properties=props)

    spark.stop()

sql结果:

相关推荐
进击的雷神几秒前
AJAX动态参数反爬、HTML嵌套网站提取、UPSERT增量更新、空值智能处理——沙特塑料展爬虫四大技术难关攻克纪实
爬虫·python·ajax·html
1941s1 分钟前
05-Agent 智能体开发实战指南(五):中间件系统与动态提示词
人工智能·python·中间件·langchain
2401_883035463 分钟前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
JobDocLS3 分钟前
rknn3588的用法
python
郝学胜-神的一滴4 分钟前
深度学习框架新纪元:PyTorch核心原理与工程实践全解析
人工智能·pytorch·python·深度学习·机器学习
焦糖玛奇朵婷4 分钟前
盲盒抽卡机小程序搭建,探索卡牌市场
大数据·开发语言·程序人生·小程序·软件需求
叶子2024224 分钟前
轻松的当下,迷茫的未来
python
智算菩萨5 分钟前
从零到精通:用 ChatGPT 5.4 解锁 Python 编程的无限可能——原理、技巧与工程实践全攻略
python·gpt·ai·chatgpt·ai编程
chushiyunen7 分钟前
pycharm实现skills示例
windows·python·pycharm
2501_941982057 分钟前
Java 实现企业微信外部群机器人:自动化消息交互
开发语言·python