SPARK基礎操作備忘

2021-07-22 03:58:48 字數 1435 閱讀 8911

首先得cd到spark目錄下,方便操作檔案。

lines=sc.textflie("readme.md")

pythonlines=lines.filter(lambda line: "python"

inline)

經過以上操作,在pythonlines這個物件就包含了在readme.md這個檔案裡所有包含有「python」這個字元的行。

這裡要注意的是,rdd存在兩種操作,即轉化操作以及行動操作。以上屬於轉化操作,此時並沒有真正的把資料讀入到了記憶體裡,只是在記憶體裡形成了乙個記錄。

pythonlines.first()

pythonlines.take(3)

pythonlines.collect()

pythonlines.count()

以上三條語句均為檢視rdd內容的方法。

第乙個是檢視包含字元的第一行。第二個是檢視包含字元的前三行。第三個是檢視包含字元的所有行。最後是對包含字元的行數計數。

對於collect()方法要注意,它是把所有資料讀入到記憶體,所以得注意記憶體容量大小問題。

pythonlines.persist
nums= sc.parallelize([1,2,3,4])

lines=sc.parallelize(["hello world","hi"])

squared=nums.map(lambda x: x*x ).collect() //collect使其繼續成為乙個list

words=lines.flatmap(lambda line: lines.split(" "))//可以用collect()方法呼叫檢視結果,flatmap將所有結果融合為乙個list

map對每一條輸入進行指定的操作,然後為每一條輸出產生乙個物件。

而flatmap是最後將所有物件合併為乙個物件,即flat,拍扁它。

rdd1.distinct()//去掉rdd1中重複元素,開銷較大

rdd1.union(rdd2)//集合合併

rdd1.intersection(rdd2)//求交集

rdd1.subtract(rdd2)//去除rdd1裡與rdd2有交集的元素

rdd1.cartesian(rdd2)//求笛卡爾積

blanklines = sc.accumulator(0) //建立了乙個累加器blanklines,用於統計空行數量,0是指初始值

blanklines.value

//可以訪問累加器的值

signprefixes = sc.broadcast(loadcallsigntable())

signprefixes.value

git 工作基礎操作備忘

已有檔案將檔案推上專案去 1.建立分支 develop,new branch 2.在自己的檔案裡如下操作 git init 在當前專案目錄中生成本地git管理,並建立乙個隱藏.git目錄 git add 新增當前目錄中的所有檔案到索引 git commit m first commit 提交到本地原...

Spark基礎 Scala集合操作

1 scala的集合操作 package com.xlucas import scala.collection.mutable created by xlucas on 2017 8 17 0017.1 預設情況下map構造的是不可變的集合,裡面的內容不可修改,一旦修改就變成新的map,原有的map...

Spark 基礎及RDD基本操作

什麼是rdd rdd resilient distributed dataset 叫做分布式資料集,是spark中最基本的資料抽象,它代表乙個不可變 可分割槽 裡面的元素可平行計算的集合。rdd具有資料流模型的特點 自動容錯 位置感知性排程和可伸縮性。rdd允許使用者在執行多個查詢時顯式地將工作集快...