版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)集中的每一個(gè)數(shù)據(jù)都代表著一塊區(qū)域內(nèi)房屋和人口的基本信息,總共包括9項(xiàng): 也就是說,我們可以把每一個(gè)數(shù)據(jù)看作一個(gè)地區(qū),它含有99 這個(gè)數(shù)據(jù)代表該地區(qū)的是(-122.230000,37.880000),這個(gè)地區(qū)房屋歷史的中數(shù)是41年,所有房屋總共有880個(gè)房間,其中有129個(gè)臥室。這個(gè)地區(qū)內(nèi)共有126個(gè)家庭和3228.325245.26這里的地域單位是做人口普查的最小地域單位,平均一個(gè)地域單位中有1400多人。在這個(gè)數(shù)據(jù)集中共有兩萬多個(gè)這樣的數(shù)據(jù)。顯然,這樣小的數(shù)據(jù)量我們并“不需要”用Spark來處理,但是,它可以起到一個(gè)很好的示例作用。這個(gè)數(shù)據(jù)集可以從網(wǎng)上到。這個(gè)數(shù)據(jù)集是在1997年的一篇學(xué)術(shù)中創(chuàng)建的,感的同學(xué)可以去親自,并加以實(shí)踐。我們可以看到,前8個(gè)屬性都可能對(duì)房價(jià)有影響。這里,我們假設(shè)這種影響是線性的,我可以找到一個(gè)類似AB+CdD+…I的,A代表房價(jià),B到I別代表另外八個(gè)屬性。這樣,對(duì)于不在數(shù)據(jù)集中的房子,我們可以套用這個(gè)來計(jì)算出一個(gè)近似的房由于的定大規(guī)據(jù)處欄,我們細(xì)講學(xué)的。如對(duì)統(tǒng)計(jì)學(xué)知識(shí)感,或者還不理解什么是線性回歸的話,可以去自行學(xué) 下。Spark的交互式S 上完成,而不是創(chuàng)建python的源文件并執(zhí)行。因?yàn)?,在S 首先,讓我們把數(shù)據(jù)集讀入Spark1frompyspark.sqlimport2#初始化SparkSession和spark=.appName("CaliforniaHousing.config("spark.executor.memory",sc=#數(shù)據(jù)并創(chuàng)建rdd=14#數(shù)據(jù)每個(gè)屬性的定義并創(chuàng)建這樣,我們就把房屋信息數(shù)據(jù)和每個(gè)屬性的定義讀入了Spark,并創(chuàng)建了兩個(gè)相應(yīng)的RDD。你還記得吧?RDD是有一個(gè)惰性求值的特性的,所以,我們可以用collect()函數(shù)來把數(shù)據(jù)輸出在S 123[u'longitude:continuous.',u'latitude:continuous.',u'housingMedianAge:continuous.這樣,我們就得到了每個(gè)數(shù)據(jù)所包含的信息,這和我們前面提到的9cole()加載存中果數(shù)大的有可造成泄漏以要使用時(shí)比較常見的方法是用ta)函數(shù)去只RDD中的某幾個(gè)元素。由于RDD中的數(shù)據(jù)可能會(huì)比較大,所以接下來讓我們它的前兩個(gè)數(shù)據(jù)2 由于我們是用SparkContext的textFile函數(shù)去創(chuàng)建RDD,所以每個(gè)數(shù)據(jù)其實(shí)是一個(gè)大的別每個(gè)對(duì)象的各個(gè)屬性。所以,讓我們用map函數(shù)把大字符串分隔成數(shù)組,這會(huì)方便rdd=rdd.map(lambdaline:34[[u'-122.230000',u'37.880000',u'41.000000',u'880.000000',u'129.000000',我們面學(xué)過,SparkSQL的DataFrameAPI在查詢結(jié)構(gòu)化數(shù)據(jù)時(shí)更方便使用,而且性能更好。在這個(gè)例子中你可以看到,數(shù)據(jù)的schema是定義好的,我們需要去查詢各個(gè)列,所以DataFrameAPIRDD轉(zhuǎn)換為DataFrameRowtoDF換成DataFrame。1frompyspark.sqlimport2df=rdd.map(lambdaline:現(xiàn)在我們可以用show()函數(shù)打印出這個(gè)DataFrame11defconvertColumn(df,names, fornamein df=df.withColumn(name, return56columns=['households','housingMedianAge','latitude','longitude',78df=convertColumn(df,columns, withColumn()有房價(jià)都除以100000。1df=df.withColumn("medianHouseValue",df=df.withColumn("roomsPerHousehold",.withColumn("populationPerHousehold",.withColumn("bedroomsPerRoom",df= DataFrameRDDmap()象分成兩部分:房價(jià)和一個(gè)包含其余屬性的列表,然后在轉(zhuǎn)換回DataFrame。frompyspark.ml.linalgimport23input_data=df.rdd.map(lambdax:(x[0],4df=spark.createDataFrame(input_data,["label",我們重新把兩部分重新標(biāo)記為“l(fā)abel”和“features”,labelfeatures對(duì)于第四點(diǎn),數(shù)據(jù)的標(biāo)準(zhǔn)化我們可以借助Spark的機(jī)器學(xué)習(xí)庫SparkML來完成。SparkML也是基于DataFrame,它提供了大量機(jī)器學(xué)習(xí)的算法實(shí)現(xiàn)、數(shù)據(jù)流水線(pipeline)相關(guān)工具和很多常用功能。由于本專欄的重點(diǎn)是大數(shù)據(jù)處理,所以我們并沒有介紹SparkML,但是我強(qiáng)烈推薦有空去了解一下它。AI1frompyspark.ml.featureimport23standardScaler=StandardScaler(inputCol="features",4scaler=5scaled_df=StandardScalerfeaturesfeatures_scaled。第三、第四行,我們把這個(gè)scaler對(duì)已有的DataFrame進(jìn)行處理,讓123[Row(label=4.526,features=DenseVector([129.0,322.0,126.0,8.3252,6.9841,2.5556,features_scaled化過的,我們應(yīng)該用它,而非features來訓(xùn)練模型。的正確性。DataFrame的randomSplit()函數(shù)可以很容易的隨機(jī)分割數(shù)據(jù),這里80%的數(shù)據(jù)用于訓(xùn)練,剩下20%作為測試集。1train_data,test_data=SparkMLLinearRegression1frompyspark.ml.regressionimport2lr=LinearRegression(featuresCol='features_scaled',labelCol="label",maxIter=10,linearModel=LinearRegression可以調(diào)節(jié)的參數(shù)還有很多,你可以去API文檔查閱,這里我們只是linearModeltransform()predicted=predictions=predicted.select("prediction").rdd.map(lambdax:labels=predicted.select("label").rdd.map(lambdax:predictionAndLabel=RDDzip()23[(1.4491508524918457,1.14999),(1.5831547768979277,這種通用的思想,并幫助你繼續(xù)熟悉Spark各種庫的用法,并不是說房價(jià)一定就是由這些然是熟悉與使用Spark各類API。相信通過今天的學(xué)習(xí),你初步了解了數(shù)據(jù)處理問題的一般思路,并強(qiáng)化了對(duì)RDD、DataFrame和機(jī)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年中國地質(zhì)調(diào)查局局屬單位招聘工作人員714人(第一批)筆試模擬試題及答案解析
- 2026上半年貴州事業(yè)單位聯(lián)考黔西南州招聘1085人筆試備考試題及答案解析
- 2026年度蚌埠市市區(qū)事業(yè)單位招聘31人考試備考題庫及答案解析
- 2026年湖南衡陽日?qǐng)?bào)社招聘事業(yè)單位工作人員16人筆試模擬試題及答案解析
- 2026年山東能源集團(tuán)營銷貿(mào)易有限公司所屬企業(yè)市場化招聘筆試備考題庫及答案解析
- 2026年飼料廠粉塵防爆管理措施
- 2026年老字號(hào)創(chuàng)新轉(zhuǎn)型培訓(xùn)
- 2026湖南省直事業(yè)單位招聘1人筆試備考試題及答案解析
- 2026年事故案例解析施工現(xiàn)場的隱患
- 2026年婦科腫瘤患者護(hù)理策略精講
- 高校區(qū)域技術(shù)轉(zhuǎn)移轉(zhuǎn)化中心(福建)光電顯示、海洋氫能分中心主任招聘2人備考題庫及答案詳解(考點(diǎn)梳理)
- 航空安保審計(jì)培訓(xùn)課件
- 2026四川成都錦江投資發(fā)展集團(tuán)有限責(zé)任公司招聘18人備考題庫有答案詳解
- 2026元旦主題班會(huì):馬年猜猜樂馬年成語教學(xué)課件
- 云南省楚雄州2023-2024學(xué)年上學(xué)期期末教育學(xué)業(yè)質(zhì)量監(jiān)測九年級(jí)歷史試卷(含答案)
- 2023年湖北煙草筆試試題
- 凝血功能檢測方法與臨床意義
- 人教版五年級(jí)數(shù)學(xué)用方程解決問題
- 架桿租賃合同
- 哈工大歷年電機(jī)學(xué)試卷及答案詳解
- GB/T 16886.1-2022醫(yī)療器械生物學(xué)評(píng)價(jià)第1部分:風(fēng)險(xiǎn)管理過程中的評(píng)價(jià)與試驗(yàn)
評(píng)論
0/150
提交評(píng)論