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

相关推荐
木头左8 分钟前
基于Backtrader框架的指数期权备兑策略实现与分析
python
素心如月桠1 小时前
cmd 输入 python --version 输出为空(windows11系统安装python后执行python --version没反应)
python
飞Link1 小时前
深度解析 HyperLPR:高性能中文车牌识别框架从入门到实战
python
QQ588501981 小时前
Python_uniapp-心理健康测评服务微信小程序的设计与实现
python·微信小程序·uni-app
建群新人小猿2 小时前
陀螺匠企业助手——组织框架图
android·java·大数据·开发语言·容器
mifengxing2 小时前
操作系统(一)
大数据·数据库·操作系统
资讯雷达2 小时前
2026 年,GEO 优化如何选?风信子传媒:以“内容生态+智能分发”重塑品牌 AI 认知
大数据·人工智能·传媒
中科天工2 小时前
当智能包装行业迎来新机遇,如何驾驭发展趋势?
大数据·人工智能·智能
wan9zhixin3 小时前
2026年1月变电设备六氟化硫泄漏检测仪品牌推荐
大数据·网络·人工智能