首先簡單介紹一下,HDFS的相關操作:
1、在HDFS上創建文件夾
hdfs dfs -mkdir /path
2、將本地文件拷貝到HDFS上
hdfs dfs -copyFromLocal local_file /dstpath
hdfs dfs -put local_file /dstpath
3、將HDFS上的文件拷貝到本地
hdfs dfs -copyToLocal /dstpath local_path
hdfs dfs -get /dstpath local_path
4、列出HDFS上文件夾下的文件
hdfs dfs -ls /dstpath
5、查看HDFS上文件的內容
hdfs dfs -cat /dstpath/result.txt
常用的RDD轉換操作API:
1、filter(func) 篩選出滿足函數func的元素,並返回一個新的數據集
2、map(func) 將每個元素傳遞到函數func中,並將結果返回爲一個新的數據集
3、flatMap(func) 與map()相似,但每個輸入元素都可以映射到0或多個輸出結果
4、groupByKey() 應用於(K,V)鍵值對的數據集時,返回一個新的(K, Iterable)形式的數據集
5、reduceByKey(func) 應用於(K,V)鍵值對的數據集時,返回一個新的(K, V)形式的數據集,其中每個值是將每個key傳遞到函數func中進行聚合後的結果
行動操作常用API:
1、count() 返回數據集中的元素個數
2、collect() 以數組的形式返回數據集中的所有元素
3、first() 返回數據集中的第一個元素
4、take(n) 以數組的形式返回數據集中的前n個元素
5、reduce(func) 通過函數func(輸入兩個參數並返回一個值)聚合數據集中的元素
6、foreach(func) 將數據集中的每個元素傳遞到函數func中運行
………………………………………………………………………………………
接下來看看正規內容,
查看HDFS文件word1.txt的內容
第一個實例
1、從分佈式文件系統HDFS中加載數據
轉換操作:包含“java”數據
行動操作:返回包含java數據集中的元素個數
打印包含java數據集中的元素,用“,”分隔。
第二個實例
2、一個綜合實例:
第三個實例
3、通過並行集合(數組)創建RDD
創建數組
轉化成RDD
RDD->RDD,並對每個元素+10,
顯示+10的結果,用“,”分隔。
行動操作:
count() 返回數據集中的元素個數
collect() 以數組的形式返回數據集中的所有元素
first() 返回數據集中的第一個元素
take(n) 以數組的形式返回數據集中的前n個元素
reduce(func) 通過函數func(輸入兩個參數並返回一個值)聚合數據集中的元素
行動操作:
foreach(func) 將數據集中的每個元素傳遞到函數func中運行(注意:遍歷的結果是隨機的)
實例四
4、通過並行集合創建RDD。
具體結果如下圖: