国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

電影評(píng)分?jǐn)?shù)據(jù)分析案例-Spark SQL

這篇具有很好參考價(jià)值的文章主要介紹了電影評(píng)分?jǐn)?shù)據(jù)分析案例-Spark SQL。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

電影評(píng)分?jǐn)?shù)據(jù)分析案例-Spark SQL,數(shù)據(jù)分析,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.構(gòu)建執(zhí)行環(huán)境入口對(duì)象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:查詢大于平均分的電影數(shù)量
    print('大于平均分電影數(shù)量為:', df.where(df['rank'] > df.select(F.avg('rank')).first()['avg(rank)']).count())

    # TODO 4:查詢高分電影中(>3)打分次數(shù)最多的用戶,此人打分的平均分
    # 找出打分次數(shù)最多的人
    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: 查詢每個(gè)用戶的平均分打分,最低打分,最高打分
    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:查詢?cè)u(píng)分超過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對(duì)象的API,作用是:在里面可以寫多個(gè)聚合
2.alias:它是Column對(duì)象的API,可以針對(duì)一個(gè)列進(jìn)行改名
3.withColumnRenamed:它是DataFrame的API,可以對(duì)DF中的列進(jìn)行改名,一次改一個(gè)列,改多個(gè)列可以鏈?zhǔn)秸{(diào)用
4.orderBy:DataFrame的API,進(jìn)行排序,參數(shù)1是被排序的列,參數(shù)2是 升序(True)或降序(False)
5.first:DataFrame的API,取出DF的第一行數(shù)據(jù),返回值結(jié)果是Row對(duì)象
## Row對(duì)象:就是一個(gè)數(shù)組,可以通過row['列名']來取出當(dāng)前行中,某一列具體數(shù)值,返回值不再是DF 或者GroupedData 或者Column 而是具體的值(字符串、數(shù)字等)
'''

1.電影評(píng)分?jǐn)?shù)據(jù)分析案例-Spark SQL,數(shù)據(jù)分析,spark,sql

2.

電影評(píng)分?jǐn)?shù)據(jù)分析案例-Spark SQL,數(shù)據(jù)分析,spark,sql

3.

電影評(píng)分?jǐn)?shù)據(jù)分析案例-Spark SQL,數(shù)據(jù)分析,spark,sql

4.

電影評(píng)分?jǐn)?shù)據(jù)分析案例-Spark SQL,數(shù)據(jù)分析,spark,sql

5.

電影評(píng)分?jǐn)?shù)據(jù)分析案例-Spark SQL,數(shù)據(jù)分析,spark,sql

6.

電影評(píng)分?jǐn)?shù)據(jù)分析案例-Spark SQL,數(shù)據(jù)分析,spark,sql文章來源地址http://www.zghlxwxcb.cn/news/detail-718914.html

到了這里,關(guān)于電影評(píng)分?jǐn)?shù)據(jù)分析案例-Spark SQL的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 大數(shù)據(jù)流處理與實(shí)時(shí)分析:Spark Streaming和Flink Stream SQL的對(duì)比與選擇

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)

    2024年02月07日
    瀏覽(26)
  • 【spark大數(shù)據(jù)】spark大數(shù)據(jù)處理技術(shù)入門項(xiàng)目--購(gòu)物信息分析

    【spark大數(shù)據(jù)】spark大數(shù)據(jù)處理技術(shù)入門項(xiàng)目--購(gòu)物信息分析

    購(gòu)物信息分析基于spark 目錄 本案例中三個(gè)文案例中需要處理的文件為 order_goods.txt、products.txt 以及 orders.txt 三個(gè)文件,三個(gè)文件的說明如下 一、本實(shí)訓(xùn)項(xiàng)目針對(duì)實(shí)驗(yàn)數(shù)據(jù)主要完成了哪些處理? 二、Hadoop+Spark集群環(huán)境的搭建步驟有哪些?(只介紹完全分布式集群環(huán)境的搭建)

    2023年04月08日
    瀏覽(30)
  • Apache Spark 練習(xí)六:使用Spark分析音樂專輯數(shù)據(jù)

    本章所分析的數(shù)據(jù)來自于Kaggle公開的、人工合成的音樂專輯發(fā)行數(shù)據(jù)(https://www.kaggle.com/datasets/revilrosa/music-label-dataset)。以下,我們只針對(duì)albums.csv文件進(jìn)行分析。該數(shù)據(jù)具體包括以下字段: id: the album identifier; artist_id: the artist identifier; album_title: the title of the album; genre: the

    2024年02月15日
    瀏覽(34)
  • Spark大數(shù)據(jù)分析與實(shí)戰(zhàn)筆記(第二章 Spark基礎(chǔ)-05)

    Spark大數(shù)據(jù)分析與實(shí)戰(zhàn)筆記(第二章 Spark基礎(chǔ)-05)

    成長(zhǎng)是一條必走的路路上我們傷痛在所難免。 在大數(shù)據(jù)處理和分析領(lǐng)域,Spark被廣泛應(yīng)用于解決海量數(shù)據(jù)處理和實(shí)時(shí)計(jì)算的挑戰(zhàn)。作為一個(gè)快速、可擴(kuò)展且易于使用的分布式計(jì)算框架,Spark為開發(fā)人員提供了豐富的API和工具來處理和分析大規(guī)模數(shù)據(jù)集。 其中,Spark-Shell是Spar

    2024年02月03日
    瀏覽(100)
  • Spark大數(shù)據(jù)分析與實(shí)戰(zhàn)筆記(第二章 Spark基礎(chǔ)-01)

    Spark大數(shù)據(jù)分析與實(shí)戰(zhàn)筆記(第二章 Spark基礎(chǔ)-01)

    寧愿跑起來被拌倒無(wú)數(shù)次,也不愿規(guī)規(guī)矩矩走一輩子,就算跌倒也要豪邁的笑。 Spark于2009年誕生于美國(guó)加州大學(xué)伯克利分校的AMP實(shí)驗(yàn)室,它是一個(gè)可應(yīng)用于大規(guī)模數(shù)據(jù)處理的統(tǒng)一分析引擎。Spark不僅計(jì)算速度快,而且內(nèi)置了豐富的API,使得我們能夠更加容易編寫程序。 Spark下

    2024年02月03日
    瀏覽(85)
  • Spark大數(shù)據(jù)分析與實(shí)戰(zhàn)筆記(第二章 Spark基礎(chǔ)-04)

    Spark大數(shù)據(jù)分析與實(shí)戰(zhàn)筆記(第二章 Spark基礎(chǔ)-04)

    “春風(fēng)十里,不如你?!?這句來自現(xiàn)代作家安妮寶貝的經(jīng)典句子,它表達(dá)了對(duì)他人的贊美與崇拜。每個(gè)人都有著不同的閃光點(diǎn)和特長(zhǎng),在這個(gè)世界上,不必去羨慕別人的光芒,自己所擁有的價(jià)值是獨(dú)一無(wú)二的。每個(gè)人都有無(wú)限的潛力和能力,只要勇敢展現(xiàn)自己,就能在人生舞

    2024年02月03日
    瀏覽(93)
  • Spark大數(shù)據(jù)分析與實(shí)戰(zhàn)筆記(第二章 Spark基礎(chǔ)-03)

    Spark大數(shù)據(jù)分析與實(shí)戰(zhàn)筆記(第二章 Spark基礎(chǔ)-03)

    又回到了原點(diǎn),就從現(xiàn)在開始我的新生活吧。 章節(jié)概要:Spark運(yùn)行架構(gòu)與原理 I. 引言 A. 概述Spark B. Spark的特點(diǎn)和優(yōu)勢(shì) II. Spark運(yùn)行架構(gòu)概述 A. Spark集群模式 B. Spark運(yùn)行模式 C. Spark執(zhí)行引擎:Spark Core D. Spark計(jì)算模塊:RDD E. Spark數(shù)據(jù)抽象模塊:DataFrame和Dataset F. Spark資源管理器:

    2024年02月03日
    瀏覽(103)
  • Spark大數(shù)據(jù)分析與實(shí)戰(zhàn)筆記(第二章 Spark基礎(chǔ)-02)

    Spark大數(shù)據(jù)分析與實(shí)戰(zhàn)筆記(第二章 Spark基礎(chǔ)-02)

    人生就像賽跑,不在乎你是否第一個(gè)到達(dá)盡頭,而在乎你有沒有跑完全程。 Spark于2009年誕生于美國(guó)加州大學(xué)伯克利分校的AMP實(shí)驗(yàn)室,它是一個(gè)可應(yīng)用于大規(guī)模數(shù)據(jù)處理的統(tǒng)一分析引擎。Spark不僅計(jì)算速度快,而且內(nèi)置了豐富的API,使得我們能夠更加容易編寫程序。 請(qǐng)參考《

    2024年02月03日
    瀏覽(100)
  • 基于Spark的氣象數(shù)據(jù)分析

    基于Spark的氣象數(shù)據(jù)分析

    研究背景與方案 1.1.研究背景 在大數(shù)據(jù)時(shí)代背景下,各行業(yè)數(shù)據(jù)的規(guī)模大幅度增加,數(shù)據(jù)類別日益復(fù)雜,給數(shù)據(jù)分析工作帶來極大挑戰(zhàn)。 氣象行業(yè)和人們 的生活息息相關(guān),隨著信息時(shí)代的發(fā)展,大數(shù)據(jù)技術(shù)的出現(xiàn)為氣象數(shù)據(jù)的發(fā)展帶來機(jī)遇?;诖?,本項(xiàng)目使用 Spark 等大

    2024年02月09日
    瀏覽(23)
  • 大數(shù)據(jù)處理與分析-Spark

    大數(shù)據(jù)處理與分析-Spark

    (基于Hadoop的MapReduce的優(yōu)缺點(diǎn)) MapReduce是一個(gè)分布式運(yùn)算程序的編程框架,是用戶開發(fā)“基于Hadoop的數(shù)據(jù)分析應(yīng)用”的核心框架 MapReduce是一種用于處理大規(guī)模數(shù)據(jù)集的編程模型和計(jì)算框架。它將數(shù)據(jù)處理過程分為兩個(gè)主要階段:Map階段和Reduce階段。在Map階段,數(shù)據(jù)被分割為多

    2024年02月04日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包