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

Pyspark交互式編程

這篇具有很好參考價值的文章主要介紹了Pyspark交互式編程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

大數(shù)據(jù)學(xué)習(xí)筆記02

Pyspark交互式編程

  1. 有該數(shù)據(jù)集Data01.txt 該數(shù)據(jù)集包含了某大學(xué)計算機系的成績,數(shù)據(jù)格式如下所示:
Tom,DataBase,80
Tom,Algorithm,50
Jim,DataBase,90
Jim,Algorithm,60......

根據(jù)給定的數(shù)據(jù)集,在pyspark中通過編程來完成以下內(nèi)容:文章來源地址http://www.zghlxwxcb.cn/news/detail-403708.html

  • 該系總共有多少學(xué)生; (提前啟動好pyspark)
lines = sc.textFile("file:///usr/local/spark/sparksqldata/Data01.txt")加載文件
res = lines.map(lambda x:x.split(",")).map(lambda x: x[0]) //獲取每行數(shù)據(jù)的第1列 
distinct_res = res.distinct()  //去重操作
distinct_res.count()//取元素總個數(shù)
  • 該系共開設(shè)了多少門課程;
lines = sc.textFile("file:///usr/local/spark/sparksqldata/Data01.txt")
res = lines.map(lambda x:x.split(",")).map(lambda x:x[1]) //獲取每行數(shù)據(jù)的第2列
distinct_res = res.distinct()//去重操作
distinct_res.count()//取元素總個數(shù)
  • Tom同學(xué)的總成績平均分是多少;
lines = sc.textFile("file:///usr/local/spark/sparksqldata/Data01.txt")
res = lines.map(lambda x:x.split(",")).filter(lambda x:x[0]=="Tom") //篩選Tom同學(xué)的成績信息
res.foreach(print) 
score = res.map(lambda x:int(x[2])) //提取Tom同學(xué)的每門成績,并轉(zhuǎn)換為int類型
num = res.count() //Tom同學(xué)選課門數(shù)
sum_score = score.reduce(lambda x,y:x+y) //Tom同學(xué)的總成績
avg = sum_score/num // 總成績/門數(shù)=平均分
print(avg)
  • 求每名同學(xué)的選修的課程門數(shù);
lines = sc.textFile("file:///usr/local/spark/sparksqldata/Data01.txt")
res = lines.map(lambda x:x.split(",")).map(lambda x:(x[0],1)) //學(xué)生每門課程都對應(yīng)(學(xué)生姓名,1),學(xué)生有n門課程則有n個(學(xué)生姓名,1)
each_res = res.reduceByKey(lambda x,y: x+y) //按學(xué)生姓名獲取每個學(xué)生的選課總數(shù)
each_res.foreach(print)
  • 該系DataBase課程共有多少人選修;
lines = sc.textFile("file:///usr/local/spark/sparksqldata/Data01.txt")
res = lines.map(lambda x:x.split(",")).filter(lambda x:x[1]=="DataBase")
res.count()
  • 各門課程的平均分是多少;
lines = sc.textFile("file:///usr/local/spark/sparksqldata/Data01.txt")
res = lines.map(lambda x:x.split(",")).map(lambda x:(x[1],(int(x[2]),1))) //為每門課程的分數(shù)后面新增一列1,表示1個學(xué)生選擇了該課程。格式如('ComputerNetwork', (44, 1))
temp = res.reduceByKey(lambda x,y:(x[0]+y[0],x[1]+y[1])) //按課程名聚合課程總分和選課人數(shù)。格式如('ComputerNetwork', (7370, 142))
avg = temp.map(lambda x:(x[0], round(x[1][0]/x[1][1],2)))//課程總分/選課人數(shù) = 平均分,并利用round(x,2)保留兩位小數(shù)
avg.foreach(print)
  • 使用累加器計算共有多少人選了DataBase這門課。
lines = sc.textFile("file:///usr/local/spark/sparksqldata/Data01.txt")
res = lines.map(lambda x:x.split(",")).filter(lambda x:x[1]=="DataBase")//篩選出選了DataBase課程的數(shù)據(jù)
accum = sc.accumulator(0) //定義一個從0開始的累加器accum
res.foreach(lambda x:accum.add(1))//遍歷res,每掃描一條數(shù)據(jù),累加器加1
accum.value //輸出累加器的最終值
編寫?yīng)毩?yīng)用程序?qū)崿F(xiàn)數(shù)據(jù)去重
  • 對于兩個輸入文件A和B,編寫Spark獨立應(yīng)用程序,對兩個文件進行合并,并剔除其中重復(fù)的內(nèi)容,得到一個新文件C。
  • 假設(shè)當(dāng)前目錄為/usr/local/spark/mycode/remdup,該目錄下新建一個remdup.py文件
from pyspark import SparkContext#初始化SparkContext
sc = SparkContext('local','remdup')#加載兩個文件A和B
lines1 = sc.textFile("file:///usr/local/spark/mycode/remdup/A")
lines2 = sc.textFile("file:///usr/local/spark/mycode/remdup/B")#合并兩個文件的內(nèi)容
lines = lines1.union(lines2)#去重操作
distinct_lines = lines.distinct() #排序操作
res = distinct_lines.sortBy(lambda x:x)
#將結(jié)果寫入result文件中,repartition(1)的作用是讓結(jié)果合并到一個文件中,不加的話會結(jié)果寫入到兩個文件
res.repartition(1).saveAsTextFile("file:///usr/local/spark/mycode/remdup/result")
#最后在目錄/usr/local/spark/mycode/remdup下執(zhí)行下面命令執(zhí)行程序(注意執(zhí)行程序時請先退出pyspark shell,否則會出現(xiàn)“地址已在使用”的警告);
編寫?yīng)毩?yīng)用程序?qū)崿F(xiàn)求平均值問題
  • 每個輸入文件表示班級學(xué)生某個學(xué)科的成績,每行內(nèi)容由兩個字段組成,第一個是學(xué)生名字,第二個是學(xué)生的成績;編寫Spark獨立應(yīng)用程序求出所有學(xué)生的平均成績,并輸出到一個新文件中。
  • 假設(shè)當(dāng)前目錄為/usr/local/spark/mycode/avgscore,在當(dāng)前目錄下新建一個avgscore.py,執(zhí)行如下代碼
from pyspark import SparkContext
sc = SparkContext('local',' avgscore')
lines1 = sc.textFile("file:///usr/local/spark/mycode/avgscore/Algorithm.txt")
lines2 = sc.textFile("file:///usr/local/spark/mycode/avgscore/Database.txt")
lines3 = sc.textFile("file:///usr/local/spark/mycode/avgscore/Python.txt")
lines = lines1.union(lines2).union(lines3)
data = lines.map(lambda x:x.split(" ")).map(lambda x:(x[0],(int(x[1]),1)))
res = data.reduceByKey(lambda x,y:(x[0]+y[0],x[1]+y[1]))
result = res.map(lambda x:(x[0],round(x[1][0]/x[1][1],2)))
result.repartition(1).saveAsTextFile("file:///usr/local/spark/mycode/avgscore/result")

到了這里,關(guān)于Pyspark交互式編程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 零知識證明學(xué)習(xí)(三)—— 非交互式零知識證明(zkSNARKs)

    本節(jié)主要介紹一種新的零知識證明- z k S N A R K zkSNARK z k S N A R K , z k S N A R K : z e r o ? k n o w l e d g e S u c c i n c t N o n ? I n t e r a c t i v e A r g u m e n t s o f K n o w l e d g e zkSNARK:zero-knowledge Succinct Non-Interactive Arguments of Knowledge z k S N A R K : z e r o ? k n o w l e d g e S u c c i n c t

    2024年01月20日
    瀏覽(30)
  • 用 ChatGPT 嘗試 JavaScript 交互式學(xué)習(xí)體驗,有用但不完美

    用 ChatGPT 嘗試 JavaScript 交互式學(xué)習(xí)體驗,有用但不完美

    很好,但還不能取代專家導(dǎo)師,有時還會犯錯! ChatGPT 教小狗編程( Midjourney 創(chuàng)作) GPT-4剛剛發(fā)布,相較于GPT-3.5,它有顯著的增強功能。其中之一是它在更長時間的交互和更大的提示下,能夠更好地保持連貫性。 多年來,我一直致力于建立前端教學(xué)網(wǎng)站,為JavaScript開發(fā)人員

    2024年02月02日
    瀏覽(25)
  • 交互式筆記Jupyter Notebook本地部署并實現(xiàn)公網(wǎng)遠程訪問內(nèi)網(wǎng)服務(wù)器

    交互式筆記Jupyter Notebook本地部署并實現(xiàn)公網(wǎng)遠程訪問內(nèi)網(wǎng)服務(wù)器

    最近,我發(fā)現(xiàn)了一個超級強大的人工智能學(xué)習(xí)網(wǎng)站。它以通俗易懂的方式呈現(xiàn)復(fù)雜的概念,而且內(nèi)容風(fēng)趣幽默。我覺得它對大家可能會有所幫助,所以我在此分享。點擊這里跳轉(zhuǎn)到網(wǎng)站。 1.前言 在數(shù)據(jù)分析工作中,使用最多的無疑就是各種函數(shù)、圖表、代碼和說明文檔,這些

    2024年02月04日
    瀏覽(29)
  • Interactive Linear Algebra:免費的交互式線性代數(shù)學(xué)習(xí)教程

    Interactive Linear Algebra:免費的交互式線性代數(shù)學(xué)習(xí)教程

    本文介紹一個學(xué)習(xí)線性代數(shù)的網(wǎng)站,該網(wǎng)站通過將線性代數(shù)中的數(shù)學(xué)規(guī)則可視化,更直觀的展示線性代數(shù)的運算過程。該網(wǎng)站可以幫助我們更快更高效的學(xué)習(xí)線性代數(shù)。如果有考研的同學(xué)或者覺得學(xué)習(xí)線性代數(shù)很枯燥或者很困難的同學(xué),可以了解該網(wǎng)站,促進高效學(xué)習(xí)和理解

    2024年02月13日
    瀏覽(28)
  • 使用Gradio庫進行交互式數(shù)據(jù)可視化:Timeseries模塊介紹

    使用Gradio庫進行交互式數(shù)據(jù)可視化:Timeseries模塊介紹

    ??覺得內(nèi)容不錯的話,歡迎點贊收藏加關(guān)注??????,后續(xù)會繼續(xù)輸入更多優(yōu)質(zhì)內(nèi)容?? ??有問題歡迎大家加關(guān)注私戳或者評論(包括但不限于NLP算法相關(guān),linux學(xué)習(xí)相關(guān),讀研讀博相關(guān)......)?? 博主原文鏈接:https://www.yourmetaverse.cn/nlp/439/ (封面圖由文心一格生成) 在

    2024年02月13日
    瀏覽(28)
  • 可視化工具:將多種數(shù)據(jù)格式轉(zhuǎn)化為交互式圖形展示的利器

    可視化工具:將多種數(shù)據(jù)格式轉(zhuǎn)化為交互式圖形展示的利器

    在數(shù)據(jù)驅(qū)動的時代,數(shù)據(jù)的分析和理解對于決策過程至關(guān)重要。然而,不同的數(shù)據(jù)格式和結(jié)構(gòu)使得數(shù)據(jù)的解讀變得復(fù)雜和困難。為了解決這個問題,一種強大的可視化工具應(yīng)運而生。這個工具具有將多種數(shù)據(jù)格式(包括 JSON 、 YAML 、 XML 、 CSV 等)轉(zhuǎn)化為交互式圖形展示的能力

    2024年02月19日
    瀏覽(25)
  • 交互式數(shù)據(jù)分析和處理新方法:pandas-ai =Pandas + ChatGPT

    交互式數(shù)據(jù)分析和處理新方法:pandas-ai =Pandas + ChatGPT

    Python Pandas是一個為Python編程提供數(shù)據(jù)操作和分析功能的開源工具包。這個庫已經(jīng)成為數(shù)據(jù)科學(xué)家和分析師的必備工具。它提供了一種有效的方法來管理結(jié)構(gòu)化數(shù)據(jù)(Series和DataFrame)。 在人工智能領(lǐng)域,Pandas經(jīng)常用于機器學(xué)習(xí)和深度學(xué)習(xí)過程的預(yù)處理步驟。Pandas通過提供數(shù)據(jù)清理

    2024年02月03日
    瀏覽(25)
  • python:基于GeoPandas和GeoViews庫將GEDI激光高程數(shù)據(jù)映射到交互式地圖

    python:基于GeoPandas和GeoViews庫將GEDI激光高程數(shù)據(jù)映射到交互式地圖

    作者:CSDN @ _養(yǎng)樂多_ 本文將介紹 GEDI(Global Ecosystem Dynamics Investigation)激光雷達數(shù)據(jù)某數(shù)據(jù)點波形數(shù)據(jù)提取,并繪制圖表,添加其他圖表元素并使圖表具有交互性。 在本文中,我們將探索如何打開、讀取和處理GEDI數(shù)據(jù),并利用地理信息處理庫GeoPandas和地理空間數(shù)據(jù)可視化庫

    2024年02月15日
    瀏覽(33)
  • 交互式shell與非交互式shell,反彈shell

    交互shell就是shell等待你的輸入,并且立即執(zhí)行你提交的命令。 這種模式被稱作交互式是因為shell與用戶進行交互。 這種模式也是大多數(shù)用戶非常熟悉的:登錄、執(zhí)行一些命令、簽退。當(dāng)簽退后,shell也終止了。 需要進行信息交互,例如輸入某個信息 會返回信息 你需要對其輸

    2024年02月02日
    瀏覽(28)
  • Pandas + ChatGPT 超強組合,pandas-ai :交互式數(shù)據(jù)分析和處理新方法

    Pandas + ChatGPT 超強組合,pandas-ai :交互式數(shù)據(jù)分析和處理新方法

    Python Pandas是一個為Python編程提供數(shù)據(jù)操作和分析功能的開源工具包。這個庫已經(jīng)成為數(shù)據(jù)科學(xué)家和分析師的必備工具。它提供了一種有效的方法來管理結(jié)構(gòu)化數(shù)據(jù)(Series和DataFrame)。 在人工智能領(lǐng)域,Pandas經(jīng)常用于機器學(xué)習(xí)和深度學(xué)習(xí)過程的預(yù)處理步驟。Pandas通過提供數(shù)據(jù)清理

    2024年02月05日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包