兩種方式建立:
一:外部資料集。,從本地檔案載入資料集,或者從hdfs檔案系統
scala>
val lines = sc.textfile(
"file:///usr/local/spark/mycode/rdd/word.txt"
)lines: org.apache.spark.rdd.rdd[
string
]= file:
/
二:呼叫sparkcontext的parallelize方法,在driver中乙個已經存在的集合上建立。
例如:
val list = list(
"i like hadoop"
,"spark is fast"
,"i like spark"
)val rdd = sc.parallelize(list)
val rdd1 = rdd.flatmap(line => line.split(
" ")
)val rdd2 = rdd1.map(line =>
(line,1)
)val rdd3 = rdd2.reducebykey(
(a,b)
=> a+b)
rdd3.collect
轉換操作:
每一次轉換操作都會產生不同的rdd,轉換得到的rdd是惰性求值的,轉換過程只是記錄了轉換的軌跡,並不會發生真正的計算,只有遇到行動操作時,才會發生真正的計算。
filter(func):篩選出滿足函式func的元素,並返回乙個新的資料集
map(func):將每個元素傳遞到函式func中,並將結果返回為乙個新的資料集
flatmap(func):與map()相似,但每個輸入元素都可以對映到0或多個輸出結果
groupbykey():應用於(k,v)鍵值對的資料集時,返回乙個新的(k, iterable)形式的資料集
reducebykey(func):應用於(k,v)鍵值對的資料集時,返回乙個新的(k, v)形式的資料集,其中的每個值是將每個key傳遞到函式func中進行聚合
行動操作:
行動操作是真正觸發計算的地方。spark程式執行到行動操作時,才會執行真正的計算,從檔案中載入資料,完成一次又一次轉換操作,最終,完成行動操作得到結果。
count(): 返回資料集中的元素個數
collect(): 以陣列的形式返回資料集中的所有元素
first(): 返回資料集中的第乙個元素
take(n): 以陣列的形式返回資料集中的前n個元素
reduce(func): 通過函式func(輸入兩個引數並返回乙個值)聚合資料集中的元素
foreach(func): 將資料集中的每個元素傳遞到函式func中執行*
棧操作和進製轉換
棧操作及數進製轉換的實現 將十進位制轉換成二進位制 只考慮整數 棧的基本操作包括 初始化棧 入棧 出棧 判定棧空 判定棧滿 取棧頂元素等 從數制轉換示例可以看出,十進位制數轉換成相應二進位制數可使用棧存放,再依次彈出棧頂元素輸出,即可得到相應二進位制結果。棧的結構設定 typedef int dat...
RDD操作建立RDD,轉換操作
學習完廈門大學資料庫spark課程總結 rdd是面對物件的檔案集合,類似於dataframe的一行資料,建立rdd有很多種模式 lines sc.textfile file usr local spark 檔案目錄位址 注意sc是sparkcontext縮寫可能需要import一下,這是從本地檔案建...
浮點數移位操作和型別轉換問題
y0 regioninfolist i minx mat 3 regioninfolist i miny mat 0 mat 2 mat 3 mat 0 mat 5 mat 1 mat 3 mat 0 mat 4 x0 regioninfolist i minx mat 4 regioninfoli...