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结果:

相关推荐
eybk13 分钟前
用python的socket写一个局域网传输文件的程序
服务器·网络·python
程序员的世界你不懂23 分钟前
【Flask】实现一个前后端一体的项目-脚手架
后端·python·flask
青云交26 分钟前
Java 大视界 -- Java 大数据在智能家居场景联动与用户行为模式挖掘中的应用
java·大数据·智能家居·边缘计算·户型适配·行为挖掘·场景联动
shinelord明34 分钟前
【数据行业发展】可信数据空间~数据价值的新型基础设施
大数据·架构·云计算·创业创新
花酒锄作田1 小时前
[MCP][01]简介与概念
python·llm·mcp
Python私教1 小时前
Django全栈班v1.04 Python基础语法 20250912 上午
后端·python·django
言之。1 小时前
Django REST框架:ModelViewSet全面解析
数据库·python·django
健康有益科技1 小时前
家庭健康智能终端:解锁智能家居时代的健康管理
大数据·软件工程·智能家居·健康医疗
Pocker_Spades_A1 小时前
Python快速入门专业版(二十六):Python函数基础:定义、调用与返回值(Hello函数案例)
开发语言·python
MXsoft6182 小时前
破解多校区高校运维困局,协同效率提升60%的智能运维方案
大数据