电影评分数据分析案例-Spark SQL

这篇具有很好参考价值的文章主要介绍了电影评分数据分析案例-Spark SQL。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

电影评分数据分析案例-Spark SQL,数据分析,spark,sql

# cording:utf8

from pyspark.sql import SparkSession
from pyspark.sql.types import IntegerType, StringType, StructType
import pyspark.sql.functions as F

if __name__ == '__main__':
    # 0.构建执行环境入口对象SparkSession
    spark = SparkSession.builder.\
        appName('movie_demo').\
        master('local[*]').\
        getOrCreate()

    sc = spark.sparkContext

    # 1.读取文件
    schema = StructType().add('user_id', StringType(), nullable=True). \
        add('movie_id', IntegerType(), nullable=True).\
        add('rank', IntegerType(), nullable=True).\
        add('ts', StringType(), nullable=True)

    df = spark.read.format('csv').\
        option('sep', '\t').\
        option('header', False).\
        option('encoding', 'utf-8').\
        schema(schema=schema).\
        load('../input/u.data')

    # TODO 1:用户平均分
    df.groupBy('user_id').\
        avg('rank').\
        withColumnRenamed('avg(rank)', 'avg_rank').\
        withColumn('avg_rank', F.round('avg_rank', 2)).\
        orderBy('avg_rank', ascending=False).\
        show()

    # TODO 2:电影的平均分查询
    df.createTempView('movie')
    spark.sql('''
        SELECT movie_id, ROUND(AVG(rank),2) as avg_rank FROM movie GROUP BY movie_id ORDER BY avg_rank DESC
    ''').show()

    # TODO 3:查询大于平均分的电影数量
    print('大于平均分电影数量为:', df.where(df['rank'] > df.select(F.avg('rank')).first()['avg(rank)']).count())

    # TODO 4:查询高分电影中(>3)打分次数最多的用户,此人打分的平均分
    # 找出打分次数最多的人
    user_id = df.where('rank>3').\
        groupBy('user_id').\
        count(). \
        withColumnRenamed('count', 'cnt').\
        orderBy('cnt', ascennding=False).\
        limit(1).\
        first()['user_id']
    # 算平均分
    df.filter(df['user_id'] == user_id).\
        select(F.round(F.avg('rank'), 2)).show()

    # TODO 5: 查询每个用户的平均分打分,最低打分,最高打分
    df.groupBy('user_id').\
        agg(
        F.round(F.avg('rank'), 2).alias('avg_rank'),
        F.min('rank').alias('min_rank'),
        F.max('rank').alias('max_rank')
    ).show()

    # TODO 6:查询评分超过100次的电影的平均分 排名TOP10
    df.groupBy('movie_id').\
        agg(
        F.round(F.count('movie_id'),2).alias('cnt'),
        F.round(F.avg('rank'),2).alias('avg_rank')
        ).\
        where('cnt > 100').\
        orderBy('avg_rank', ascending=False).\
        limit(10).\
        show()

'''
1.agg:它是GroupedData对象的API,作用是:在里面可以写多个聚合
2.alias:它是Column对象的API,可以针对一个列进行改名
3.withColumnRenamed:它是DataFrame的API,可以对DF中的列进行改名,一次改一个列,改多个列可以链式调用
4.orderBy:DataFrame的API,进行排序,参数1是被排序的列,参数2是 升序(True)或降序(False)
5.first:DataFrame的API,取出DF的第一行数据,返回值结果是Row对象
## Row对象:就是一个数组,可以通过row['列名']来取出当前行中,某一列具体数值,返回值不再是DF 或者GroupedData 或者Column 而是具体的值(字符串、数字等)
'''

1.电影评分数据分析案例-Spark SQL,数据分析,spark,sql

2.

电影评分数据分析案例-Spark SQL,数据分析,spark,sql

3.

电影评分数据分析案例-Spark SQL,数据分析,spark,sql

4.

电影评分数据分析案例-Spark SQL,数据分析,spark,sql

5.

电影评分数据分析案例-Spark SQL,数据分析,spark,sql

6.

电影评分数据分析案例-Spark SQL,数据分析,spark,sql文章来源地址https://www.toymoban.com/news/detail-718914.html

到了这里,关于电影评分数据分析案例-Spark SQL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据流处理与实时分析:Spark Streaming和Flink Stream SQL的对比与选择

    作者:禅与计算机程序设计艺术

    2024年02月07日
    浏览(35)
  • 【spark大数据】spark大数据处理技术入门项目--购物信息分析

    购物信息分析基于spark 目录 本案例中三个文案例中需要处理的文件为 order_goods.txt、products.txt 以及 orders.txt 三个文件,三个文件的说明如下 一、本实训项目针对实验数据主要完成了哪些处理? 二、Hadoop+Spark集群环境的搭建步骤有哪些?(只介绍完全分布式集群环境的搭建)

    2023年04月08日
    浏览(46)
  • Apache Spark 练习六:使用Spark分析音乐专辑数据

    本章所分析的数据来自于Kaggle公开的、人工合成的音乐专辑发行数据(https://www.kaggle.com/datasets/revilrosa/music-label-dataset)。以下,我们只针对albums.csv文件进行分析。该数据具体包括以下字段: id: the album identifier; artist_id: the artist identifier; album_title: the title of the album; genre: the

    2024年02月15日
    浏览(46)
  • Spark大数据分析与实战笔记(第二章 Spark基础-02)

    人生就像赛跑,不在乎你是否第一个到达尽头,而在乎你有没有跑完全程。 Spark于2009年诞生于美国加州大学伯克利分校的AMP实验室,它是一个可应用于大规模数据处理的统一分析引擎。Spark不仅计算速度快,而且内置了丰富的API,使得我们能够更加容易编写程序。 请参考《

    2024年02月03日
    浏览(43)
  • Spark大数据分析与实战笔记(第二章 Spark基础-03)

    又回到了原点,就从现在开始我的新生活吧。 章节概要:Spark运行架构与原理 I. 引言 A. 概述Spark B. Spark的特点和优势 II. Spark运行架构概述 A. Spark集群模式 B. Spark运行模式 C. Spark执行引擎:Spark Core D. Spark计算模块:RDD E. Spark数据抽象模块:DataFrame和Dataset F. Spark资源管理器:

    2024年02月03日
    浏览(36)
  • Spark大数据分析与实战笔记(第二章 Spark基础-04)

    “春风十里,不如你。” 这句来自现代作家安妮宝贝的经典句子,它表达了对他人的赞美与崇拜。每个人都有着不同的闪光点和特长,在这个世界上,不必去羡慕别人的光芒,自己所拥有的价值是独一无二的。每个人都有无限的潜力和能力,只要勇敢展现自己,就能在人生舞

    2024年02月03日
    浏览(52)
  • Spark大数据分析与实战笔记(第二章 Spark基础-05)

    成长是一条必走的路路上我们伤痛在所难免。 在大数据处理和分析领域,Spark被广泛应用于解决海量数据处理和实时计算的挑战。作为一个快速、可扩展且易于使用的分布式计算框架,Spark为开发人员提供了丰富的API和工具来处理和分析大规模数据集。 其中,Spark-Shell是Spar

    2024年02月03日
    浏览(90)
  • Spark大数据分析与实战笔记(第二章 Spark基础-01)

    宁愿跑起来被拌倒无数次,也不愿规规矩矩走一辈子,就算跌倒也要豪迈的笑。 Spark于2009年诞生于美国加州大学伯克利分校的AMP实验室,它是一个可应用于大规模数据处理的统一分析引擎。Spark不仅计算速度快,而且内置了丰富的API,使得我们能够更加容易编写程序。 Spark下

    2024年02月03日
    浏览(48)
  • 基于Spark的气象数据分析

    研究背景与方案 1.1.研究背景 在大数据时代背景下,各行业数据的规模大幅度增加,数据类别日益复杂,给数据分析工作带来极大挑战。 气象行业和人们 的生活息息相关,随着信息时代的发展,大数据技术的出现为气象数据的发展带来机遇。基于此,本项目使用 Spark 等大

    2024年02月09日
    浏览(37)
  • 大数据处理与分析-Spark

    (基于Hadoop的MapReduce的优缺点) MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架 MapReduce是一种用于处理大规模数据集的编程模型和计算框架。它将数据处理过程分为两个主要阶段:Map阶段和Reduce阶段。在Map阶段,数据被分割为多

    2024年02月04日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包