大數(shù)據(jù)分析與應(yīng)用微課版-課件 項目3、4 電商產(chǎn)品數(shù)據(jù)分布式處理、電商產(chǎn)品數(shù)據(jù)離線分析_第1頁
大數(shù)據(jù)分析與應(yīng)用微課版-課件 項目3、4 電商產(chǎn)品數(shù)據(jù)分布式處理、電商產(chǎn)品數(shù)據(jù)離線分析_第2頁
大數(shù)據(jù)分析與應(yīng)用微課版-課件 項目3、4 電商產(chǎn)品數(shù)據(jù)分布式處理、電商產(chǎn)品數(shù)據(jù)離線分析_第3頁
大數(shù)據(jù)分析與應(yīng)用微課版-課件 項目3、4 電商產(chǎn)品數(shù)據(jù)分布式處理、電商產(chǎn)品數(shù)據(jù)離線分析_第4頁
大數(shù)據(jù)分析與應(yīng)用微課版-課件 項目3、4 電商產(chǎn)品數(shù)據(jù)分布式處理、電商產(chǎn)品數(shù)據(jù)離線分析_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

項目三

電商產(chǎn)品數(shù)據(jù)分布式存儲使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)目錄Content1使用HadoopStreaming處理電商產(chǎn)品數(shù)據(jù)2數(shù)據(jù)缺失數(shù)據(jù)格式不統(tǒng)一項目導(dǎo)言零使用MapReduce框架對數(shù)據(jù)進(jìn)行清洗學(xué)習(xí)目標(biāo)零知識目標(biāo)了解MapReduce;熟悉MapReduce的架構(gòu);掌握YARN與MapReduce的關(guān)系;掌握正則表達(dá)式元字符含義。技能目標(biāo)具備使用正則表達(dá)式匹配文本的能力;具備運(yùn)行HadoopStreaming的能力;具備實現(xiàn)數(shù)據(jù)清洗的能力。素養(yǎng)目標(biāo)具有健康的體魄、健全的人格和健康的個性;具有良好的行為習(xí)慣和良好的心理素質(zhì);具有較強(qiáng)的勞動組織能力、集體意識和社會責(zé)任心;具有發(fā)現(xiàn)問題、分析問題、解決問題的能力。任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹任務(wù)技能MapReduce簡介MapReduce是由Google公司研究并提出的分布式運(yùn)算編程框架,主要是為了解決搜索引擎中大規(guī)模網(wǎng)頁數(shù)據(jù)的并行化處理問題YARN簡介ApacheHadoopYARN,全稱YetAnotherResourceNegotiator,是Hadoop通用資源管理和調(diào)度平臺

正則表達(dá)式正則表達(dá)式(RegularExpression,RE),又稱規(guī)則表達(dá)式,在代碼中常簡寫為regex、regexp或RE,是一種文本模式任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹1MapReduce簡介HadoopMapReduce極大地方便了編程人員在不會分布式編程的情況下,將自己的程序運(yùn)行在分布式系統(tǒng)上(1)MapReduce起源MapReduce是由Google公司研究并提出的分布式運(yùn)算編程框架,主要是為了解決搜索引擎中大規(guī)模網(wǎng)頁數(shù)據(jù)的并行化處理問題。任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹(2)什么是MapReduceMapReduce可以分成Map和Reduce兩部分理解,Map是一個映射過程,能夠?qū)⒁唤M數(shù)據(jù)按照某種Map函數(shù)映射成新的數(shù)據(jù),Reduce是一個歸納過程,把若干組映射結(jié)果進(jìn)行匯總并輸出映射、變換、過濾的過程。一條數(shù)據(jù)進(jìn)入map會被處理成多條數(shù)據(jù)MapReduce分解、縮小、歸納的過程。一組數(shù)據(jù)進(jìn)入reduce會被歸納為一組數(shù)據(jù)(或者多組數(shù)據(jù))任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹(3)MapReduce1.0架構(gòu)MapReduce目前有兩個版本分別為MapReduce1.0和基于YARN的MapReduce2.0,與HDFS一樣相同,同樣采用了Master/Slave架構(gòu),主要由Client、JobTracker、TaskTracker、Task四個部分組成任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹(4)分布式處理框架的“HelloWorld”分布式處理架構(gòu)也擁有自己的“HelloWorld”程序就是WordCount(單詞計數(shù))任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹2YARN簡介YARN是Hadoop通用資源管理和調(diào)度平臺,能夠為MapReduce、storm、Spark等計算框架,即上層應(yīng)用,提供統(tǒng)一的資源管理和調(diào)度,使資源管理、數(shù)據(jù)共享、集群利用率等方面有了極大的提升任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹(1)設(shè)計目標(biāo)YARN也被稱為下一代計算平臺,YARN將部分職責(zé)委派給TaskTracker,因為集群中有許多TaskTracker任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹(2)YARN結(jié)構(gòu)中各組件說明ResourceManager負(fù)責(zé)統(tǒng)一管理和調(diào)度各NodeManager上的資源NodeManager各節(jié)點的資源和任務(wù)管理器,負(fù)責(zé)節(jié)點的維護(hù)工作ApplicationMaster負(fù)責(zé)調(diào)度和協(xié)調(diào)具體應(yīng)用程序ContainerYARN資源)的抽象,用于資源分配時資源劃分的單位任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹(3)YARN執(zhí)行流程MRApplicationMaster將執(zhí)行的結(jié)果反饋給集群的應(yīng)用管理者ResourceManager接收到請求后,ApplicationManager與NodeManager進(jìn)行通信ResourceScheduler將資源分配給MRApplicationMaster,NodeManager啟動MapTask和ReduceTaskclient可以通過瀏覽器訪問MRApplicationMaster去監(jiān)控MapTask和ReduceTask的執(zhí)行情況MapTask和ReduceTask將執(zhí)行的結(jié)果反饋給MRApplicationMasterclient向ResourceManager發(fā)出命令請求MRApplicationMaster創(chuàng)建完成后向ResourceManager發(fā)送已經(jīng)創(chuàng)建完畢并注冊的信息,同時向ResourceScheduler申請資源執(zhí)行結(jié)束任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹3正則表達(dá)式正則表達(dá)式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達(dá)對字符串的一種過濾邏輯正則表達(dá)式任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹(1)正則表達(dá)式定義正則表達(dá)式是字符串,它包含文本和特殊字符。利用文字與特定字符的混合,可以定義復(fù)雜的字符串匹配與取代類型任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹(2)Python正則的應(yīng)用Python中內(nèi)置了RE庫(正則表達(dá)式庫),不需要進(jìn)行下載安裝,在使用時只需要使用importre引入即可//第一種方式r'正則表達(dá)式'//第二種方式,flags用于設(shè)置匹配方式,可選填pile(r'正則表達(dá)式',flags)正則表達(dá)式定義完成后,即可通過RE庫提供的多種方法執(zhí)行正則表達(dá)式任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹(3)正則表達(dá)式執(zhí)行方法search()方法能夠?qū)φ麄€字符串內(nèi)容進(jìn)行搜索,找到第一個匹配成功的內(nèi)容,并以Match對象形式返回,當(dāng)匹配不成功則返回Nonere.search(pattern,string,flags)pattern:匹配的正則表達(dá)式string:要匹配的字符串flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式參數(shù)值作用re.I忽略大小寫re.L表示特殊字符集\w,\W,\b,\B,\s,\S依賴于當(dāng)前環(huán)境re.M多行模式re.X為了增加可讀性,忽略空格和#后面的注釋任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹(3)正則表達(dá)式執(zhí)行方法match()方法可以從整個字符串的起始位置開始搜索匹配正則表達(dá)式的內(nèi)容,如果不是起始位置匹配成功的返回None,當(dāng)起始位置開始匹配成功則以Match對象形式返回,參數(shù)及作用與search()方法相同re.match(pattern,string,flags)pattern:匹配的正則表達(dá)式string:要匹配的字符串flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式參數(shù)值作用re.I忽略大小寫re.L表示特殊字符集\w,\W,\b,\B,\s,\S依賴于當(dāng)前環(huán)境re.M多行模式re.X為了增加可讀性,忽略空格和#后面的注釋任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹(3)正則表達(dá)式執(zhí)行方法findall()方法在字符串中找到正則表達(dá)式所匹配的所有子串,并返回一個列表,如果有多個匹配模式,則返回元組列表,如果沒有找到匹配的,則返回空列表re.findall(pattern,string,flags)pattern:匹配的正則表達(dá)式string:要匹配的字符串flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式參數(shù)值作用re.I忽略大小寫re.L表示特殊字符集\w,\W,\b,\B,\s,\S依賴于當(dāng)前環(huán)境re.M多行模式re.X為了增加可讀性,忽略空格和#后面的注釋任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹(3)正則表達(dá)式執(zhí)行方法split()可以將字符串中符合正則表達(dá)式的字符做為分割符將整個字符串分割,并以列表類型返回分割后的內(nèi)容,當(dāng)沒有符合字符時,則將整個字符串以列表形式返回re.split(pattern,string,maxsplit,flags)maxsplit:分隔次數(shù),maxsplit=1分隔一次,默認(rèn)為0,不限制次數(shù)任務(wù)3-1:使用正則表達(dá)式匹配電商產(chǎn)品數(shù)據(jù)壹編輯正則表達(dá)式Step1獲取正則表達(dá)式匹配的結(jié)果Step2格式化輸出Step3運(yùn)行代碼Step4電商產(chǎn)品數(shù)據(jù)的處理與分析使用正則表達(dá)式進(jìn)行配并輸出為每列使用\t分割的數(shù)據(jù)任務(wù)3-2:使用HadoopStreaming處理電商產(chǎn)品數(shù)據(jù)貳HadoopStreaming簡介任務(wù)技能HDFS在最開始時,是作為ApacheNutch搜索引擎項目的基礎(chǔ)架構(gòu)而開發(fā),現(xiàn)在是ApacheHadoop核心項目的一部分HadoopStreaming使用HDFS以統(tǒng)一目錄樹的形式實現(xiàn)自身文件的存儲,客戶端只需指定對應(yīng)的目錄樹即可完成文件的訪問,不需要獲取具體的文件存儲位置任務(wù)3-2:使用HadoopStreaming處理電商產(chǎn)品數(shù)據(jù)貳Streamming主要用于對文字進(jìn)行處理(textprocessing),通過Streaming能夠通過各種腳本語言,快速的處理大量的文本文件1HadoopStreaming簡介任務(wù)3-2:使用HadoopStreaming處理電商產(chǎn)品數(shù)據(jù)貳2HadoopStreaming使用使用HadoopStreaming運(yùn)行MapReduce程序非常簡單,只需在Hadoop安裝包bin目錄下,在hadoop腳本后添加Streamingjar包的完整路徑即可實現(xiàn)程序的運(yùn)行hadoopjarhadoop-streaming.jar\-D="streaming_wordcount"\-Dmapred.map.tasks=3\-Dmapred.reduce.tasks=3\-Dmapred.job.priority=3\-input/input/\-output/output/\-mapperpythonmapper.py\-reducerpythonreducer.py\-file./mapper.py\-file./reducer.py:作業(yè)名稱;mapred.map.tasks:map任務(wù)數(shù)量;mapred.reduce.tasks:reduce任務(wù)數(shù)量;mapred.job.priority:作業(yè)優(yōu)先級;-input:在HDFS上的作業(yè)輸入路徑,支持通配符,支持多個文件;-output:在HDFS上的作業(yè)結(jié)果輸出路徑;-mapper:mapper可執(zhí)行程序;-reducer:reducer可執(zhí)行程序;-file:分發(fā)本地文件。任務(wù)3-2:使用HadoopStreaming處理電商產(chǎn)品數(shù)據(jù)貳編寫數(shù)據(jù)清洗程序并執(zhí)行數(shù)據(jù)清洗Step1使用正則表達(dá)式進(jìn)行評論分詞Step2使用MapReduce進(jìn)行詞頻統(tǒng)計Step3將結(jié)果保存到HDFS分布式文件系統(tǒng)中Step4電商產(chǎn)品數(shù)據(jù)的處理與分析項目中數(shù)據(jù)的清洗操作HDFS分布式文件系統(tǒng)與您共同成長項目四

電商產(chǎn)品數(shù)據(jù)離線分析使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫目錄Content1使用Hve對商產(chǎn)品數(shù)據(jù)統(tǒng)計2使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器3使用SparkSQL完成電商產(chǎn)品數(shù)據(jù)分析4固定的周期進(jìn)行數(shù)據(jù)分析離線數(shù)據(jù)分析技術(shù)項目導(dǎo)言零SparkSQLHive學(xué)習(xí)目標(biāo)零知識目標(biāo)了解Hive相關(guān)知識;熟悉Hive數(shù)據(jù)的操作;熟悉DataFrame創(chuàng)建;掌握SparkSQL的數(shù)據(jù)操作;具有實現(xiàn)海量數(shù)據(jù)離線分析的能力。技能目標(biāo)具備使用HiveQL進(jìn)行數(shù)據(jù)操作的能力;具備掌握Hive數(shù)據(jù)查詢命令使用的能力;具備創(chuàng)建DataFrame的能力;具備應(yīng)用SparkSQL分析數(shù)據(jù)的能力。素養(yǎng)目標(biāo)具備團(tuán)隊意識;具有理論聯(lián)系實際的素質(zhì)和創(chuàng)新能力;具備處理人際關(guān)系的能力。任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹Hive簡介任務(wù)技能Hive是一個建立在Hadoop上用于處理結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)倉庫工具Hive表操作表主要由存儲的數(shù)據(jù)和描述表格中數(shù)據(jù)形式的元數(shù)據(jù)組成,存放在分布式文件系統(tǒng)中,當(dāng)表中未存在數(shù)據(jù)時,該表在HDFS中將以空文件夾存在Hive數(shù)據(jù)庫操作通過HiveQL(HQL)語句完成對數(shù)據(jù)庫和表的相關(guān)操作。目前,常用的數(shù)據(jù)庫操作有數(shù)據(jù)庫創(chuàng)建、數(shù)據(jù)庫查看、數(shù)據(jù)庫選擇、數(shù)據(jù)庫刪除Hive數(shù)據(jù)操作與傳統(tǒng)關(guān)系型數(shù)據(jù)庫不同,Hive數(shù)據(jù)倉庫提供了多種數(shù)據(jù)的增加操作,包括數(shù)據(jù)的導(dǎo)入、導(dǎo)出、插入任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹1Hive簡介Hive沒有專門的數(shù)據(jù)存儲格式,其所有數(shù)據(jù)均以text、SequenceFile、ParquetFile等格式存在于HDFS中,只需在創(chuàng)建表時通過列分隔符和行分隔符即可定義Hive表中的數(shù)據(jù)結(jié)構(gòu)(1)Hive優(yōu)缺點易上手;提供統(tǒng)一的元數(shù)據(jù)管理;存在多個接口,如Beeline、ODBC、JBCD、python、Thrift等;有較高的可擴(kuò)展性,Hive可以做到隨擴(kuò)展集群規(guī)模且不需要重啟服務(wù);具有較強(qiáng)延展性,用戶可根據(jù)自己的需求自定義函數(shù);良好的容錯性,可以保障即使有節(jié)點出現(xiàn)問題,SQL語句仍可完成執(zhí)行;不支持事務(wù),Hive不支持記錄級別的增刪改操作,但用可通過查詢生成新表或按將結(jié)果保存到文件中;延遲較高,因為MapReducejob的啟動耗時較長所以Hive的查詢延時也很嚴(yán)重,不能應(yīng)用在交互查詢系統(tǒng)中。調(diào)優(yōu)困難;可調(diào)控性差。任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹Hive使用服務(wù)器—客戶機(jī)(C/S)模式的架構(gòu),由MetaStore、Client、Driver和Hadoop組成,可通過交互接口接收SQL命令,使用Driver對指令進(jìn)行翻譯后生成MapReduce并提交到Hadoop執(zhí)行(2)Hive體系架構(gòu)任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹2Hive數(shù)據(jù)庫操作Hive作為一個數(shù)據(jù)倉庫工具雖然與傳統(tǒng)關(guān)系型數(shù)據(jù)庫有本質(zhì)區(qū)別,但卻提供了與傳統(tǒng)數(shù)據(jù)庫類似的概念,可以通過HiveQL(HQL)語句完成對數(shù)據(jù)庫和表的相關(guān)操作命令描述CREATEDATABASE創(chuàng)建數(shù)據(jù)庫SHOWDATABASES查看數(shù)據(jù)庫名稱DESCRIBEDATABASE查看數(shù)據(jù)庫信息USE選擇數(shù)據(jù)庫DROPDATABASE刪除數(shù)據(jù)庫任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹(1)數(shù)據(jù)庫創(chuàng)建在Hive中,數(shù)據(jù)庫的創(chuàng)建通過“CREATEDATABASE”命令實現(xiàn),在創(chuàng)建的同時會在HDFS中創(chuàng)建一個與數(shù)據(jù)庫同名的目錄,目錄中包含的子目錄則為該數(shù)據(jù)庫中存在的表CREATEDATABASE[IFNOTEXISTS]<數(shù)據(jù)庫名>[COMMENT]'數(shù)據(jù)庫的描述信息'[LOCATION]'數(shù)據(jù)庫在HDFS中的位置';參數(shù)描述IFNOTEXISTS創(chuàng)建數(shù)據(jù)庫時,不管數(shù)據(jù)庫是否存在都不拋出異常COMMENT定義數(shù)據(jù)庫的描述信息LOCATION定義數(shù)據(jù)庫在HDFS中的位置任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹(2)數(shù)據(jù)庫名稱查看Hive提供了一個數(shù)據(jù)庫名稱查看命令“SHOWDATABASES”,在使用時不需要任何參數(shù)直接應(yīng)用即可查看Hive中當(dāng)前存在所有數(shù)據(jù)庫,并將數(shù)據(jù)庫的名稱返回(3)數(shù)據(jù)庫信息查看“DESCRIBEDATABASE”命令可以查看指定數(shù)據(jù)庫的詳細(xì)信息,在使用時只需提供數(shù)據(jù)庫的名稱即可DESCRIBEDATABASE<數(shù)據(jù)庫名>;任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹(4)數(shù)據(jù)庫選擇選擇數(shù)據(jù)庫使用“USE”命令,與“SHOWDATABASES”命令使用相同,只需指定數(shù)據(jù)庫名稱即可(5)數(shù)據(jù)庫刪除通過“DROPDATABASE”命令結(jié)合數(shù)據(jù)庫名稱即可完成數(shù)據(jù)庫的刪除,默認(rèn)情況下,該命令只能刪除不包含表的空數(shù)據(jù)庫,可通過參數(shù)設(shè)置強(qiáng)制刪除數(shù)據(jù)庫USE<數(shù)據(jù)庫名>;DROPDATABASE[IFEXISTS]<數(shù)據(jù)庫名>[CASCADE];參數(shù)描述IFEXISTS刪除數(shù)據(jù)庫時,不管數(shù)據(jù)庫表是否存在都不拋出異常CASCADE強(qiáng)制刪除數(shù)據(jù)庫任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹3Hive表操作表主要由存儲的數(shù)據(jù)和描述表格中數(shù)據(jù)形式的元數(shù)據(jù)組成,存放在分布式文件系統(tǒng)中,當(dāng)表中未存在數(shù)據(jù)時,該表在HDFS中將以空文件夾存在。根據(jù)存在形式的不同,將表又分為內(nèi)部表和外部表兩種內(nèi)部表數(shù)據(jù)文件存儲在Hive數(shù)據(jù)倉庫里,刪除操作會刪除相關(guān)目錄及數(shù)據(jù)01外部表數(shù)據(jù)文件可以存儲在Hive數(shù)據(jù)倉庫外的分布式文件系統(tǒng),在刪除時,只會刪除元數(shù)據(jù)信息,而不會刪除HDFS中的數(shù)據(jù)02任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹(1)Hive表操作與關(guān)系型數(shù)據(jù)庫相同,Hive也包含表的創(chuàng)建、查詢、刪除、修改等常用操作命令描述CREATETABLE創(chuàng)建表SHOWTABLES查看表名稱DESCRIBE查看表信息ALTERTABLE修改表DROPTABLE刪除表任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹(2)表創(chuàng)建表的創(chuàng)建通過“CREATETABLE”命令實現(xiàn),在使用時可通過相關(guān)參數(shù)的指定數(shù)據(jù)字段的分隔符、表的元數(shù)據(jù)路徑、設(shè)置分區(qū)等CREATE[EXTERNAL]TABLE<表名>(row1數(shù)據(jù)類型,row2數(shù)據(jù)類型,....)[COMMENT]'表描述信息'[PARTITIONEDBY]

(分區(qū)字段及類型)[ROWFORMATDELIMITED]{LINESTERMINATEDBY'\t'|FIELDSTERMINATEDBY

','|MAPKEYSTERMINATEDBY':'|COLLECTIONITEMSTERMINATEDBY

','}[STOREDAS]{TEXTFILE

|SEQUENCEFILE

|RCFILE

|ORC}[LOCATION]'表元數(shù)路徑';任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹(3)表名稱查看在數(shù)據(jù)庫表創(chuàng)建完成后,為了確認(rèn)是否創(chuàng)建成功,這是可以通過“SHOWTABLES”命令實現(xiàn)數(shù)據(jù)庫表名稱的查看,并將當(dāng)前數(shù)據(jù)庫包含的所有數(shù)據(jù)庫名稱返回DESCRIBE[FORMATTED]<表名>;(4)表信息查看屬性描述Database所屬數(shù)據(jù)庫CreateTime創(chuàng)建時間Location表在HDFS中的存儲位置TableType表類型,其中:MANAGED_TABLE:內(nèi)部表EXTERNAL_TABLE:外部表表信息查看命令為“DESCRIBE”,可以查看所屬數(shù)據(jù)庫、創(chuàng)建時間、數(shù)據(jù)集所在目錄和表的類型(內(nèi)部表/外部表)等信息任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹(5)表修改ALTERTABLE”命令主要用于實現(xiàn)表的修改,包括表名修改、字段名修改,并且在修改時,只會改變表的信息而不會修改數(shù)據(jù)ALTERTABLE<舊表名>RENAMETO<新表名>;ALTERTABLE<表名>CHANGE<舊字段名><新字段名><字段類型>[COMMENT]'字段描述信息'[FIRST|AFTER]<字段名>;參數(shù)描述COMMENT定義字段的描述信息FIRST將調(diào)整修改后字段放到指定字段前AFTER將調(diào)整修改后字段放到指定字段后任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹(6)表刪除刪除表的命令與刪除數(shù)據(jù)庫命令類似,刪除表使用DROPTABLE命令,對于內(nèi)部表會將數(shù)據(jù)一起刪除,而對于外部表只會刪除表結(jié)構(gòu)DROPTABLE<表名>;任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹與傳統(tǒng)關(guān)系型數(shù)據(jù)庫不同,Hive數(shù)據(jù)倉庫提供了多種數(shù)據(jù)的增加操作,包括數(shù)據(jù)的導(dǎo)入、導(dǎo)出、插入等4Hive數(shù)據(jù)操作(1)數(shù)據(jù)導(dǎo)入數(shù)據(jù)導(dǎo)入是指將存儲在Hadoop分布式文件系統(tǒng)中的數(shù)據(jù)導(dǎo)入到Hive表LOADDATA[LOCAL]INPATH'filepath'INTOTABLE<表名>[PARTITION](partcol1=val1,partcol2=val2...);參數(shù)描述LOCAL本地文件設(shè)置,不設(shè)置時表示從HDFS文件進(jìn)行加載INPATH數(shù)據(jù)文件路徑INTOTABLE指定目標(biāo)表PARTITION設(shè)置分區(qū)列任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹(2)數(shù)據(jù)導(dǎo)出在使用Hive進(jìn)行統(tǒng)計分析后,為了避免數(shù)據(jù)的重復(fù)統(tǒng)計或丟失,可通過“INSERTOVERWRITE”命令將Hive表中的數(shù)據(jù)導(dǎo)出到本地或HDFS文件系統(tǒng)中永久保存,并將目標(biāo)目錄下的內(nèi)容刪除INSERTOVERWRITE[LOCAL]DIRECTORY'目標(biāo)路徑'SELECT...;參數(shù)描述LOCAL本地文件設(shè)置,不設(shè)置時表示導(dǎo)出到HDFSDIRECTORY目標(biāo)路徑SELECT數(shù)據(jù)查詢語句任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹(3)數(shù)據(jù)插入在Hive中,除了通過數(shù)據(jù)導(dǎo)入方式批量添加數(shù)據(jù),還可以通過數(shù)據(jù)插入命令進(jìn)行數(shù)據(jù)添加。目前,Hive有兩種數(shù)據(jù)插入方式,分別是單條數(shù)據(jù)插入和查詢結(jié)果插入INSERTINTO<表名>(字段列)VALUES(插入的值);1、單條數(shù)據(jù)插入是最簡單的插入方式,可直接將指定的值追加到數(shù)據(jù)表中2、相比于單條數(shù)據(jù)插入,查詢結(jié)果插入需要在單條數(shù)據(jù)插入的基礎(chǔ)上結(jié)合SELECT語句實現(xiàn)INSERTINTO|OVERWRITETABLE<表名>[PARTITION](partcol1=val1,...)SELECT...;任務(wù)4-1:使用Hive創(chuàng)建電商產(chǎn)品數(shù)據(jù)庫壹創(chuàng)建Hive數(shù)據(jù)庫Step1綁定數(shù)據(jù)庫Step2設(shè)置數(shù)據(jù)類型、字段分隔符以及數(shù)據(jù)在HDFS上的存儲路徑Step3檢查創(chuàng)建好的表信息Step4Hive完成數(shù)據(jù)庫和數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)庫、表、數(shù)據(jù)相關(guān)操作任務(wù)4-2:使用Hve對商產(chǎn)品數(shù)據(jù)統(tǒng)計貳算術(shù)運(yùn)算任務(wù)技能在Hive的查詢語句中,SELECT除了完成列的選擇外,還具有強(qiáng)大的數(shù)據(jù)計算功能,可以通過算術(shù)運(yùn)算符對選擇的列進(jìn)行數(shù)據(jù)計算數(shù)據(jù)查詢在Hive數(shù)據(jù)操作中,除了數(shù)據(jù)的增加外,還存在數(shù)據(jù)查詢操作,Hive的統(tǒng)計分析功能就是通過數(shù)據(jù)查詢操作實現(xiàn)的任務(wù)4-2:使用Hve對商產(chǎn)品數(shù)據(jù)統(tǒng)計貳1算術(shù)運(yùn)算在Hive的查詢語句中,SELECT除了完成列的選擇外,還具有強(qiáng)大的數(shù)據(jù)計算功能,可以通過算術(shù)運(yùn)算符對選擇的列進(jìn)行數(shù)據(jù)計算運(yùn)算符描述+和-差*乘積/商%取余&按位與,轉(zhuǎn)換為二進(jìn)制后進(jìn)行計算,只有當(dāng)相應(yīng)位上的數(shù)都是1時,該位才取1,否則該為為0|按位或,轉(zhuǎn)換為二進(jìn)制后進(jìn)行計算,只要相應(yīng)位上存在1,那么該位就取1,均不為1,即為0。^按位異或,轉(zhuǎn)換為二進(jìn)制后進(jìn)行計算,只有當(dāng)相應(yīng)位上的數(shù)字不相同時,該為才取1,若相同,即為0~A按位取反,轉(zhuǎn)換成二進(jìn)制后進(jìn)行計算,0變1,1變0任務(wù)4-2:使用Hve對商產(chǎn)品數(shù)據(jù)統(tǒng)計貳2數(shù)據(jù)查詢在Hive數(shù)據(jù)操作中,除了數(shù)據(jù)的增加外,還存在數(shù)據(jù)查詢操作,Hive的統(tǒng)計分析功能就是通過數(shù)據(jù)查詢操作實現(xiàn)的(1)基礎(chǔ)查詢語句SELECT命令用于檢索表中的數(shù)據(jù),F(xiàn)ROM命令用于選擇數(shù)據(jù)表SELECT<列名>FROM<表名>;需要注意的是,要查詢的列名每個列之間使用逗號“,”作為分隔符,如果需要查詢?nèi)康淖侄慰墒褂谩?”符號代表查詢?nèi)孔侄稳蝿?wù)4-2:使用Hve對商產(chǎn)品數(shù)據(jù)統(tǒng)計貳(2)表別名設(shè)置在進(jìn)行多表的關(guān)聯(lián)查詢時,為了明確表和列的所屬關(guān)系,通常會為表設(shè)置別名,只需在表名稱后直接加入表的別名,并在SELECT語句后通過“別名.字段名”的方式進(jìn)行字段的指定SELECT表別名.列1,表別名.列2...FROM<表名><表別名>;(3)列別名設(shè)置在使用查詢語句時,得到的結(jié)果是由新列組成的新關(guān)系,也就是計算結(jié)果在原始表中不存在,這時可以通過“as”給新產(chǎn)生的列設(shè)置一個名稱SELECT列1,列2,(列1+列2)as列別名FROM<表名>;任務(wù)4-2:使用Hve對商產(chǎn)品數(shù)據(jù)統(tǒng)計貳(3)查詢結(jié)果限制Hive提供了一個LIMIT語句,可以通過指定個數(shù)限制結(jié)果數(shù)量SELECT列1,列2...FROM<表名>LIMITn;(4)條件查詢語句為了過濾到更為詳細(xì)的數(shù)據(jù),可以通過WHERE語句設(shè)置過濾條件SELECT<列名>FROM<表名>WHERE查詢條件;查詢條件主要通過謂詞操作符組成的表達(dá)式進(jìn)行設(shè)置,當(dāng)計算結(jié)果為true時相應(yīng)的列值被保留并輸出任務(wù)4-2:使用Hve對商產(chǎn)品數(shù)據(jù)統(tǒng)計貳(5)分組語句分組語句“GROUPBY”可以將一個或多個列包含數(shù)據(jù)做為key進(jìn)行分組,并將重復(fù)key合并,而重復(fù)key對應(yīng)的數(shù)據(jù)則可以通過聚合函數(shù)進(jìn)行統(tǒng)計操作SELECT列1,sum(列2)FROM<表名>GROUPBY列1;sum()主要用于計算指定行的和,是Hive中較為常用的一種聚合函數(shù)。除了sum()之外,Hive還提過了多種用于其他計算的函數(shù)函數(shù)描述count(*)統(tǒng)計表中的總記錄數(shù)sum(col)計算指定列數(shù)據(jù)的和sum(DISTINCTcol)計算去重后指定列數(shù)據(jù)的和avg(col)計算指定列數(shù)據(jù)的平均值avg(DISTINCTcol)計算去重后指定列數(shù)據(jù)的平均值min(col)計算指定列數(shù)據(jù)的最小值max(col)計算指定列數(shù)據(jù)的最大值var_samp(col)計算指定列數(shù)據(jù)的樣本方差任務(wù)4-2:使用Hve對商產(chǎn)品數(shù)據(jù)統(tǒng)計貳(6)關(guān)聯(lián)查詢通過關(guān)聯(lián)查詢可以從多個表中進(jìn)行數(shù)據(jù)的關(guān)聯(lián)查詢。關(guān)聯(lián)查詢常用的連接方式有內(nèi)連接、左外連接、右外連接和滿外(全外)連接等命令描述JOIN內(nèi)連接LEFTJOIN左外連接RIGHTJOIN右外連接FULLOUTERJOIN滿外(全外)連接任務(wù)4-2:使用Hve對商產(chǎn)品數(shù)據(jù)統(tǒng)計貳(7)內(nèi)連接內(nèi)連接可通過“JOIN”命令實現(xiàn),主要用于交集數(shù)據(jù)的查詢,返回在兩個表中都存在的數(shù)據(jù),并在連接的同時,可通過ON子句進(jìn)行連接條件的定義SELECTa.col,b.colFROM<表名>aJOIN<表名>bONa.col=b.col;(8)左外連接以左表為主,將左表的所有數(shù)據(jù)與右表對應(yīng)的數(shù)據(jù)進(jìn)行連接,如果右表中沒有與左表對應(yīng)的數(shù)據(jù)時,會將數(shù)據(jù)值設(shè)置為“NULL”,可通過“LEFTJOIN”命令實現(xiàn)SELECTa.col,b.colFROM<表名>aLEFTJOIN<表名>bONa.col=b.col;任務(wù)4-2:使用Hve對商產(chǎn)品數(shù)據(jù)統(tǒng)計貳(9)右外連接與左外連接基本相同,右外連接以右表為主進(jìn)行連接,會將左表中沒有與右表對應(yīng)的數(shù)據(jù)設(shè)置為“NULL”,可通過“RIGHTJOIN”命令實現(xiàn)SELECTa.col,b.colFROM<表名>aRIGHTJOIN<表名>bONa.col=b.col;(10)滿外(全外)連接滿外(全外)連接是指將兩個表中的數(shù)據(jù)全部連接起來,如果沒有對應(yīng)的數(shù)則顯示為空,可通過“FULLOUTERJOIN”命令實現(xiàn)SELECTa.col,b.colFROM<表名>aFULLOUTERJOIN<表名>bONa.col=b.col;任務(wù)4-2:使用Hve對商產(chǎn)品數(shù)據(jù)統(tǒng)計貳(11)排序查詢在Hive中數(shù)據(jù)的排序查詢有兩種方法,分別是ORDERBY語句和SORTBY語句。其中,ORDERBY語句能夠?qū)λ袛?shù)據(jù)進(jìn)行全局排序,會將所有數(shù)據(jù)通過reducer進(jìn)行處理SELECTcol1,col2FROM<表名>ORDERBYcol1;SORTBY語句在排序時,會啟動多個reducer,單獨對每個reducer中的數(shù)據(jù)進(jìn)行排序,這樣能夠做到每個reducer輸出的數(shù)據(jù)都是有序的,提高排序的效率SELECTcol1,col2FROM<表名>SORTBYcol1;任務(wù)4-2:使用Hve對商產(chǎn)品數(shù)據(jù)統(tǒng)計貳查詢并統(tǒng)計數(shù)據(jù)Step1綁定數(shù)據(jù)庫Step2在phone_comment表中,以level列做為key進(jìn)行分組關(guān)聯(lián)phone_comment表和phone_list表Step4某電商產(chǎn)品數(shù)據(jù)的處理與分析項目中數(shù)據(jù)的統(tǒng)計分析Hive數(shù)據(jù)查詢操作Step3任務(wù)4-3:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器叁任務(wù)技能SparkSQL簡介Spark是由加州大學(xué)伯克利分校的AMP實驗室基于內(nèi)存開發(fā)的并行計算框架,主要用于實現(xiàn)大規(guī)模數(shù)據(jù)處理而設(shè)計DataFrame簡介Spark為SparkSQL提供了DataFrame抽象,主要用于實現(xiàn)數(shù)據(jù)的存儲,SparkSQL的數(shù)據(jù)統(tǒng)計分析就是基于這個抽象的API實現(xiàn)DataFrame創(chuàng)建在SparkSQL中,DataFrame通過數(shù)據(jù)源的加載實現(xiàn)創(chuàng)建任務(wù)4-3:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器叁1SparkSQL簡介Spark是由加州大學(xué)伯克利分校的AMP實驗室基于內(nèi)存開發(fā)的并行計算框架,主要用于實現(xiàn)大規(guī)模數(shù)據(jù)處理而設(shè)計,是熟悉RDBMS但又不理解MapReduce的技術(shù)人員的快速上手工具(1)SparkSQL簡介SparkSQL是Spark中處理結(jié)構(gòu)化數(shù)據(jù)的一個組件,其前身為Shark,即hiveonSpark,是當(dāng)時唯一運(yùn)行在Hadoop上的SQL-on-Hadoop工具任務(wù)4-3:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器叁(2)SparkSQL優(yōu)勢相比于Shark,SparkSQL在數(shù)據(jù)分析性能方面的提升并不明顯,但其表現(xiàn)出來的性能同樣優(yōu)異,這與其多方面優(yōu)化有著密不可分的關(guān)系內(nèi)存列存儲存儲空間占用小,讀取的吞吐率大字節(jié)碼生成技術(shù)減少了代碼的冗余,實現(xiàn)了代碼體積的壓縮。統(tǒng)一數(shù)據(jù)訪問SparkSQL提供了多種數(shù)據(jù)源的訪問方法SQL使用可以使用多種語言的API進(jìn)行數(shù)據(jù)的操作任務(wù)4-3:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器叁(3)SparkSQL執(zhí)行流程SparkSQL的語句在執(zhí)行過程中會涉及Projection、DataSource、Filter等部分,與關(guān)系型數(shù)據(jù)庫SQL查詢過程的Result、DataSource、Operation一一對應(yīng)任務(wù)4-3:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器叁2DataFrame簡介Spark為SparkSQL提供了DataFrame抽象,主要用于實現(xiàn)數(shù)據(jù)的存儲,SparkSQL的數(shù)據(jù)統(tǒng)計分析就是基于這個抽象的API實現(xiàn)相比于RDD,DataFrame同樣是分布式彈性數(shù)據(jù)集,能夠根據(jù)內(nèi)存情況自動進(jìn)行緩存運(yùn)算,與RDD最本質(zhì)的區(qū)別在于數(shù)據(jù)的存儲格式,RDD中所有數(shù)據(jù)為一個整體,每一行即為一個數(shù)據(jù)樣本而DataFrame中數(shù)據(jù)按列存儲,同樣是一行表示為一個數(shù)據(jù)樣本,每一行都包含多個列,每一列都表示一類數(shù)據(jù),在RDD基礎(chǔ)上將數(shù)據(jù)分組并增加頭部字段名稱和類型任務(wù)4-3:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器叁3DataFrame創(chuàng)建DataFrame通過數(shù)據(jù)源的加載實現(xiàn)創(chuàng)建,例如RDD、結(jié)構(gòu)化的數(shù)據(jù)文件(JSON、CSV等)、Hive數(shù)據(jù)庫表、外部數(shù)據(jù)庫(MySQL、Oracle等)等(1)基于RDD創(chuàng)建DataFrame在通過RDD實現(xiàn)DataFrame創(chuàng)建時,需要通過toDF()方法進(jìn)行轉(zhuǎn)換,其可以通過接收以“,”逗號分隔的多個參數(shù)實現(xiàn)列名稱的設(shè)置RDD.toDF("第一列的列名稱","第二列的列名稱",...)任務(wù)4-3:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器叁(2)加載結(jié)構(gòu)化數(shù)據(jù)文件創(chuàng)建DataFrameSparkSQL支持的結(jié)構(gòu)化數(shù)據(jù)文件有文本文件、JSON文件、CSV文件、parquet文件等,可以通過load()方法加載存儲在本地或HDFS中的結(jié)構(gòu)化數(shù)據(jù)文件并轉(zhuǎn)換為DataFrameSparkSession.read.format("文件格式").load("HDFS或本地文件路徑")(3)SparkSession對象SparkSession為SparkSQL的入口對象,主要用于數(shù)據(jù)的加載、轉(zhuǎn)換、處理等工作方法描述appName()設(shè)置Spark應(yīng)用程序的名字config()設(shè)置各種配置master()設(shè)置運(yùn)行類型,參數(shù)值有:local:本地單線程運(yùn)行l(wèi)ocal[n]:指定內(nèi)核個數(shù)本地多線程運(yùn)行l(wèi)ocal[*]:本地多線程getOrCreate()獲取或者新建一個sparkSession任務(wù)4-3:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器叁(4)format()方法format()方法主要用于文件類型的設(shè)置,通過參數(shù)的不同可以選擇不同類型的加載文件參數(shù)值描述TEXT文本文件JSONjson文件CSVcsv文件Parquetparquet文件,默認(rèn)文件格式任務(wù)4-3:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器叁(5)load()方法load()方法主要用于數(shù)據(jù)文件的加載,只需指定數(shù)據(jù)文件所在地址即可,默認(rèn)情況下加載HDFS上的數(shù)據(jù)文件,可在路徑之前加入“file://”指定為本地數(shù)據(jù)文件//加載本地文件SparkSession.read.format("TEXT").load("file:///usr/local/data.txt")//加載HDFS文件SparkSession.read.format("TEXT").load("/usr/local/data.txt")任務(wù)4-3:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器叁針對Hive中的數(shù)據(jù),SparkSession對象提供了一個sql()方法,可以連接Hive并讀取數(shù)據(jù)表中的數(shù)據(jù)創(chuàng)建DataFrame//連接Hive并使用數(shù)據(jù)庫SparkSession.sql("use數(shù)據(jù)庫名稱")//查詢數(shù)據(jù)庫數(shù)據(jù)創(chuàng)建DataFrameSparkSession.sql("Hive數(shù)據(jù)庫操作語句")在進(jìn)行Hive數(shù)據(jù)庫操作語句的編寫時,可通過Spark提供的UDF自定義函數(shù)完成指定列數(shù)據(jù)的自定義功能(6)基于Hive數(shù)據(jù)表創(chuàng)建DataFrame任務(wù)4-3:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器叁SparkSQL還可以通過JDBC或ODBC訪問外部數(shù)據(jù)庫創(chuàng)建DataFrame,其同樣需要使用load()方法與format()方法//數(shù)據(jù)庫連接變量名稱="jdbc:mysql://1主機(jī)IP/數(shù)據(jù)庫名稱?useSSL=false"http://訪問數(shù)據(jù)庫生成DataFrameSparkSession.read.format("jdbc").options(Map("url"->url,"user"->"root","password"->"123456","dbtable"->"test")).load()(7)基于外部數(shù)據(jù)庫創(chuàng)建DataFrame任務(wù)4-3:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器叁進(jìn)入Spark安裝目錄的bin目錄Step1通過pyspark進(jìn)入Python版本的Spark命令行Step2從pyspark模塊導(dǎo)入SparkSession并實例化SparkSessionStep3通過sql()方法結(jié)合Hive數(shù)據(jù)查詢語句從productdata數(shù)據(jù)庫的phone_list和phone_comment數(shù)據(jù)表獲取全部數(shù)據(jù)創(chuàng)建DataFrameStep4根據(jù)產(chǎn)品詳情數(shù)據(jù)創(chuàng)建分布式數(shù)據(jù)容器SparkSQL與DataFrame任務(wù)4-4:使用SparkSQL完成電商產(chǎn)品數(shù)據(jù)分析肆數(shù)據(jù)查看任務(wù)技能SparkSQL提供了多種數(shù)據(jù)查看方法,包含數(shù)據(jù)展示、數(shù)據(jù)統(tǒng)計信息查看等數(shù)據(jù)處理在SparkSQL中,除了數(shù)據(jù)的查看與過濾外,還提供了數(shù)據(jù)的處理操作,包括數(shù)據(jù)的修改、排序、分組統(tǒng)計、去重、刪除等數(shù)據(jù)過濾SparkSQL也提供了多種數(shù)據(jù)過濾方法,可以從海量的數(shù)據(jù)中查找符合條件的數(shù)據(jù)

數(shù)據(jù)存儲經(jīng)過分析后的數(shù)據(jù),為了滿足后續(xù)的需要,還需將其保存。SparkSQL提供了一個save()方法,可以將DataFrame中的內(nèi)容保存到本地文件、HDFS、Hive、MySQL以及本地中任務(wù)4-4:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器肆1數(shù)據(jù)查看在完成DataFrame的創(chuàng)建后,可通過數(shù)據(jù)的查看進(jìn)行驗證。SparkSQL提供了多種數(shù)據(jù)查看方法,包含數(shù)據(jù)展示、數(shù)據(jù)統(tǒng)計信息查看等方法描述show(n)數(shù)據(jù)展示,無參數(shù)時,默認(rèn)顯示前20行數(shù)據(jù)first()展示第一行數(shù)據(jù)head(n)展示前n行數(shù)據(jù),當(dāng)參數(shù)為空時,表示展示第一行數(shù)據(jù)take(n)展示前n行數(shù)據(jù),并以List形式顯示collect()獲取全部數(shù)據(jù),并以List形式顯示describe()查看字段的統(tǒng)計信息,并以DataFrame形式返回,當(dāng)查看多個字段時通過逗號“,”連接任務(wù)4-4:使用Spark創(chuàng)建基于電商產(chǎn)品數(shù)據(jù)的分布式數(shù)據(jù)容器肆2數(shù)據(jù)過濾SparkSQL也提供了多種數(shù)據(jù)過濾方法,可以從海量的數(shù)據(jù)中查找符合條件的數(shù)據(jù)方法描述where()/filter()表達(dá)式過濾select()字段過濾where()和filter()方法可以通過設(shè)置條件表達(dá)式過濾數(shù)據(jù),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論