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

Python大數(shù)據之PySpark(七)SparkCore案例

這篇具有很好參考價值的文章主要介紹了Python大數(shù)據之PySpark(七)SparkCore案例。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

SparkCore案例

PySpark實現(xiàn)SouGou統(tǒng)計分析

  • jieba分詞:

  • pip install jieba 從哪里下載pypi

  • Python大數(shù)據之PySpark(七)SparkCore案例,# PySpark,python,大數(shù)據,開發(fā)語言,原力計劃

  • 三種分詞模式

  • 精確模式,試圖將句子最精確地切開,適合文本分析;默認的方式

  • 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非??欤遣荒芙鉀Q歧義;

  • 搜索引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用于搜索引擎分詞。

  • Python大數(shù)據之PySpark(七)SparkCore案例,# PySpark,python,大數(shù)據,開發(fā)語言,原力計劃

# -*- coding: utf-8 -*-
# Program function:測試結巴分詞
import jieba
import re

# jieba.cut
# 方法接受四個輸入參數(shù):
# 需要分詞的字符串;
# cut_all 參數(shù)用來控制是否采用全模式;
# HMM 參數(shù)用來控制是否使用 HMM 模型;
# use_paddle 參數(shù)用來控制是否使用paddle模式下的分詞模式,paddle模式采用延遲加載方式,通過enable_paddle接口安裝paddlepaddle-tiny,并且import相關代碼;
str = "我來到北京清華大學"
print(list(jieba.cut(str)))  # ['我', '來到', '北京', '清華大學'],默認的是精確模式
print(list(jieba.cut(str, cut_all=True)))  # ['我', '來到', '北京', '清華', '清華大學', '華大', '大學'] 完全模式

# 準備的測試數(shù)據
str1 = "00:00:00	2982199073774412	[360安全衛(wèi)士]	8 3	download.it.com.cn/softweb/software/firewall/antivirus/20067/17938.html"
print(re.split("\s+", str1)[2])  # [360安全衛(wèi)士]
print(re.sub("\[|\]", "", re.split("\s+", str1)[2])) #360安全衛(wèi)士
print(list(jieba.cut(re.sub("\[|\]", "", re.split("\s+", str1)[2]))))  # [360安全衛(wèi)士] --->['360', '安全衛(wèi)士']
  • Python大數(shù)據之PySpark(七)SparkCore案例,# PySpark,python,大數(shù)據,開發(fā)語言,原力計劃
  • 數(shù)據認知:數(shù)據集來自于搜狗實驗室,日志數(shù)據

  • 日志庫設計為包括約1個月(2008年6月)Sogou搜索引擎部分網頁查詢需求用戶點擊情況的網頁查詢日志數(shù)據集合。

  • Python大數(shù)據之PySpark(七)SparkCore案例,# PySpark,python,大數(shù)據,開發(fā)語言,原力計劃
  • Python大數(shù)據之PySpark(七)SparkCore案例,# PySpark,python,大數(shù)據,開發(fā)語言,原力計劃
  • 需求

  • 1-首先需要將數(shù)據讀取處理,形成結構化字段進行相關的分析

  • 2-如何對搜索詞進行分詞,使用jieba或hanlp

  • jieba是中文分詞最好用的工具

  • Python大數(shù)據之PySpark(七)SparkCore案例,# PySpark,python,大數(shù)據,開發(fā)語言,原力計劃
  • 步驟

  • 1-讀取數(shù)據

  • 2-完成需求1:搜狗關鍵詞統(tǒng)計

  • 3-完成需求2:用戶搜索點擊統(tǒng)計

  • 4-完成需求3:搜索時間段統(tǒng)計

  • 5-停止sparkcontext

  • 代碼

# -*- coding: utf-8 -*-

# Program function:搜狗分詞之后的統(tǒng)計

'''

* 1-讀取數(shù)據
* 2-完成需求1:搜狗關鍵詞統(tǒng)計
* 3-完成需求2:用戶搜索點擊統(tǒng)計
* 4-完成需求3:搜索時間段統(tǒng)計
* 5-停止sparkcontext
 '''
 from pyspark import SparkConf, SparkContext
 import re
 import jieba

if __name__ == '__main__':

# 準備環(huán)境變量

conf = SparkConf().setAppName("sougou").setMaster("local[*]")
sc = SparkContext.getOrCreate(conf=conf)
sc.setLogLevel("WARN")

# TODO*1 - 讀取數(shù)據

sougouFileRDD = sc.textFile("/export/data/pyspark_workspace/PySpark-SparkCore_3.1.2/data/sougou/SogouQ.reduced")

# print("sougou count is:", sougouFileRDD.count())#sougou count is: 1724264

# 00:00:00 2982199073774412   [360安全衛(wèi)士]  8 3    download.it.com.cn/softweb/software/firewall/antivirus/20067/17938.html

resultRDD=sougouFileRDD \
.filter(lambda line:(len(line.strip())>0) and (len(re.split("\s+",line.strip()))==6))\
.map(lambda line:(
  re.split("\s+", line)[0],
  re.split("\s+", line)[1],
  re.sub("\[|\]", "", re.split("\s+", line)[2]),
  re.split("\s+", line)[3],
  re.split("\s+", line)[4],
  re.split("\s+", line)[5]
))

# print(resultRDD.take(2))

#('00:00:00', '2982199073774412', '360安全衛(wèi)士', '8', '3', 'download.it.com.cn/softweb/software/firewall/antivirus/20067/17938.html')
#('00:00:00', '07594220010824798', '哄搶救災物資', '1', '1', 'news.21cn.com/social/daqian/2008/05/29/4777194_1.shtml')

# TODO*2 - 完成需求1:搜狗關鍵詞統(tǒng)計

print("=============完成需求1:搜狗關鍵詞統(tǒng)計==================")
recordRDD = resultRDD.flatMap(lambda record: jieba.cut(record[2]))

# print(recordRDD.take(5))

sougouResult1=recordRDD\
  .map(lambda word:(word,1))\
  .reduceByKey(lambda x,y:x+y)\
  .sortBy(lambda x:x[1],False)

# print(sougouResult1.take(5))

# TODO*3 - 完成需求2:用戶搜索點擊統(tǒng)計

print("=============完成需求2:用戶搜索點擊統(tǒng)計==================")

# 根據用戶id和搜索的內容作為分組字段進行統(tǒng)計

sougouClick = resultRDD.map(lambda record: (record[1], record[2]))
sougouResult2=sougouClick\
  .map(lambda tuple:(tuple,1))\
  .reduceByKey(lambda x,y:x+y) #key,value

# 打印一下最大的次數(shù)和最小的次數(shù)和平均次數(shù)

print("max count is:",sougouResult2.map(lambda x: x[1]).max())
print("min count is:",sougouResult2.map(lambda x: x[1]).min())
print("mean count is:",sougouResult2.map(lambda x: x[1]).mean())

# 如果對所有的結果排序

# print(sougouResult2.sortBy(lambda x: x[1], False).take(5))

# TODO*4 - 完成需求3:搜索時間段統(tǒng)計

print("=============完成需求3:搜索時間段-小時-統(tǒng)計==================")
#00:00:00
hourRDD = resultRDD.map(lambda x: str(x[0])[0:2])
sougouResult3=hourRDD\
  .map(lambda word:(word,1))\
  .reduceByKey(lambda x,y:x+y)\
  .sortBy(lambda x:x[1],False)
print("搜索時間段-小時-統(tǒng)計",sougouResult3.take(5))

# TODO*5 - 停止sparkcontext

sc.stop()

總結

  • 重點關注在如何對數(shù)據進行清洗,如何按照需求進行統(tǒng)計
  • 1-rdd的創(chuàng)建的兩種方法,必須練習
  • 2-rdd的練習將基礎的案例先掌握。map。flatMap。reduceByKey
  • 3-sougou的案例需要聯(lián)系2-3遍
  • 練習流程:
  • 首先先要將代碼跑起來
  • 然后在理解代碼,這一段代碼做什么用的
  • 在敲代碼,需要寫注釋之后敲代碼

AI副業(yè)實戰(zhàn)手冊:http://www.yibencezi.com/notes/253200?affiliate_id=1317(目前40+工具及實戰(zhàn)案例,持續(xù)更新,實戰(zhàn)類小冊排名第一,做三個月掙不到錢找我退款,交個朋友的產品)

后記

??博客主頁:https://manor.blog.csdn.net

??歡迎點贊 ?? 收藏 ?留言 ?? 如有錯誤敬請指正!
??本文由 Maynor 原創(chuàng),首發(fā)于 CSDN博客??
??感覺這輩子,最深情綿長的注視,都給了手機?
??專欄持續(xù)更新,歡迎訂閱:https://blog.csdn.net/xianyu120/category_12453356.html文章來源地址http://www.zghlxwxcb.cn/news/detail-713135.html

到了這里,關于Python大數(shù)據之PySpark(七)SparkCore案例的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • Python學習之PySpark案例實戰(zhàn)

    Python學習之PySpark案例實戰(zhàn)

    Spark是什么 Apache Spark是用于 大規(guī)模數(shù)據(large-scala data)處理的統(tǒng)一 (unified) 分析引擎 。 簡單來說,Spark是一款分布式的計算框架,用于調度成百上千的服務器集群,計算TB、PB乃至EB級別的海量數(shù)據。 Spark作為全球頂級的分布式計算框架,支持眾多的編程語言進行開發(fā) 而Python語

    2024年02月05日
    瀏覽(23)
  • Python大數(shù)據之PySpark(二)PySpark安裝

    Python大數(shù)據之PySpark(二)PySpark安裝

    1-明確PyPi庫,Python Package Index 所有的Python包都從這里下載,包括pyspark 2-為什么PySpark逐漸成為主流? http://spark.apache.org/releases/spark-release-3-0-0.html Python is now the most widely used language on Spark. PySpark has more than 5 million monthly downloads on PyPI, the Python Package Index. 記住如果安裝特定的版本

    2024年02月04日
    瀏覽(40)
  • 【Python】PySpark 數(shù)據處理 ② ( 安裝 PySpark | PySpark 數(shù)據處理步驟 | 構建 PySpark 執(zhí)行環(huán)境入口對象 )

    【Python】PySpark 數(shù)據處理 ② ( 安裝 PySpark | PySpark 數(shù)據處理步驟 | 構建 PySpark 執(zhí)行環(huán)境入口對象 )

    執(zhí)行 Windows + R , 運行 cmd 命令行提示符 , 在命令行提示符終端中 , 執(zhí)行 命令 , 安裝 PySpark , 安裝過程中 , 需要下載 310 M 的安裝包 , 耐心等待 ; 安裝完畢 : 命令行輸出 : 如果使用 官方的源 下載安裝 PySpark 的速度太慢 , 可以使用 國內的 鏡像網站 https://pypi.tuna.tsinghua.edu.cn/simple

    2024年02月06日
    瀏覽(23)
  • Python大數(shù)據之PySpark

    Python大數(shù)據之PySpark

    Apache Spark是一種用于大規(guī)模數(shù)據處理的多語言分布式引擎,用于在單節(jié)點機器或集群上執(zhí)行數(shù)據工程、數(shù)據科學和機器學習 Spark官網:https://spark.apache.org/ 按照官網描述,Spark關鍵特征包括: 批/流處理 Spark支持您使用喜歡的語言:Python、SQL、Scala、Java或R,統(tǒng)一批量和實時流處

    2024年02月08日
    瀏覽(35)
  • Python大數(shù)據之PySpark(一)SparkBase

    Python大數(shù)據之PySpark(一)SparkBase

    Spark學習方法: 不斷重復,28原則(使用80%時間完成20%重要內容) Spark風雨十年s 2012年Hadoop1.x出現(xiàn),里程碑意義 2013年Hadoop2.x出現(xiàn),改進HDFS,Yarn,基于Hadoop1.x框架提出基于內存迭代式計算框架Spark 1-Spark全家桶,實現(xiàn)離線,實時,機器學習,圖計算 2-spark版本從2.x到3.x很多優(yōu)化

    2024年02月08日
    瀏覽(25)
  • Python數(shù)據攻略-Hadoop集群中PySpark數(shù)據處理

    Hadoop是一個開源的分布式存儲和計算框架。它讓我們可以在多臺機器上存儲大量的數(shù)據,并且進行高效的數(shù)據處理。簡而言之,Hadoop就像一個巨大的倉庫,可以存放海量的數(shù)據,并且有高效的工具來處理這些數(shù)據。

    2024年02月07日
    瀏覽(34)
  • Python大數(shù)據處理利器之Pyspark詳解

    Python大數(shù)據處理利器之Pyspark詳解

    在現(xiàn)代信息時代,數(shù)據是最寶貴的財富之一,如何處理和分析這些數(shù)據成為了關鍵。Python在數(shù)據處理方面表現(xiàn)得尤為突出。而 pyspark 作為一個強大的分布式計算框架,為大數(shù)據處理提供了一種高效的解決方案。本文將詳細介紹pyspark的基本概念和使用方法,并給出實際案例。

    2024年02月10日
    瀏覽(21)
  • Python大數(shù)據之PySpark(五)RDD詳解

    Python大數(shù)據之PySpark(五)RDD詳解

    為什么需要RDD? 首先Spark的提出為了解決MR的計算問題,諸如說迭代式計算,比如:機器學習或圖計算 希望能夠提出一套基于內存的迭代式數(shù)據結構,引入RDD彈性分布式數(shù)據集,如下圖 為什么RDD是可以容錯? RDD依靠于依賴關系dependency relationship reduceByKeyRDD-----mapRDD-----flatMapRD

    2024年02月06日
    瀏覽(52)
  • Spark重溫筆記(二):快如閃電的大數(shù)據計算框架——你真的了解SparkCore的 RDD 嗎?(包含企業(yè)級搜狗案例和網站點擊案例)

    前言:今天是溫習 Spark 的第 2 天啦!主要梳理了 Spark 核心數(shù)據結構:RDD(彈性分布式數(shù)據集),其中包括基于內存計算的 SparkCore 各類技術知識點希望對大家有幫助! Tips:\\\"分享是快樂的源泉??,在我的博客里,不僅有知識的海洋??,還有滿滿的正能量加持??,快來和我一起

    2024年03月25日
    瀏覽(22)
  • Python 與 PySpark數(shù)據分析實戰(zhàn)指南:解鎖數(shù)據洞見

    Python 與 PySpark數(shù)據分析實戰(zhàn)指南:解鎖數(shù)據洞見

    ?? 個人網站:【 海擁】【神級代碼資源網站】【辦公神器】 ?? 基于Web端打造的:??輕量化工具創(chuàng)作平臺 ?? 想尋找共同學習交流的小伙伴,請點擊【全棧技術交流群】 數(shù)據分析是當今信息時代中至關重要的技能之一。Python和PySpark作為強大的工具,提供了豐富的庫和功能,

    2024年02月03日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包