Spark運算元:RDD基本轉換操作map、flatMap
import org.apache.spark._
object rdd_test {
System.setProperty("hadoop.home.dir", "C:\\hadoop_home\\")
def main(args: Array[String]) {
/*
* Spark運算元:RDD基本轉換操作之 map、flatMap、distinct學習筆記
*
*/
val sparkConf = new SparkConf().setMaster("local").setAppName("RDD_TEST_chenxun")
val sc = new SparkContext(sparkConf)
val lines = sc.textFile("D:\\spark_data\\data.txt")
for (v <-lines) println(v)
/*
hello chen
hello spark
hello hadoop
*/
//map操作
val mapresult1 = lines.map(line => line.split(" ")).collect()
//Array[Array[String]] = Array(Array(hello, chen), Array(hello, spark), Array(hello, hadoop))
/*
將一個RDD中的每個資料項,通過map中的函式對映變為一個新的元素。
輸入分割槽與輸出分割槽一對一,即:有多少個輸入分割槽,就有多少個輸出分割槽
mapresult.collect()結果是:(後面會比較flatMap的結果有什麼不同)
Array[Array[String]] = Array(Array(hello, chen), Array(hello, spark), Array(hello, hadoop))
可以用下面的方法輸出
for (elem <- lines.map(line => line.split(" ")).collect()) {
for(v <- elem){
print(v + " ")
}
println()
}
*/
//flatMap 操作
val mapresult2 = lines.flatMap(line => line.split(" ")).collect()
//Array[String] = Array(hello, chen, hello, spark, hello, hadoop)
/* 屬於Transformation運算元,第一步和map一樣,最後將所有的輸出分割槽合併成一個。
Array[String] = Array(hello, chen, hello, spark, hello, hadoop)
for(elem <- mapresult2){
println(elem)
}
*/
//計算每一行的長度
val lineLengths = lines.map(s => s.length)
for( v <- lineLengths){
println(v)
}
val totalLength = lineLengths.reduce((a, b) => a + b)
println(totalLength)
}
}
相關文章
- Spark RDD運算元(八)mapPartitions, mapPartitionsWithIndexSparkAPPIndex
- spark RDD運算元(五)之鍵值對聚合操作combineByKeySpark
- Spark----RDD運算元分類 DAGSpark
- RDD轉換操作運算元 --- zip(k-v)、join(k)、cogroup(k)、lookup(k)
- RDD運算元
- spark RDD textFile運算元 分割槽數量詳解Spark
- Spark入門(四)--Spark的map、flatMap、mapToPairSparkAPTAI
- Spark SQL中的RDD與DataFrame轉換SparkSQL
- Spark運算元:統計RDD分割槽中的元素及數量Spark
- spark的基本運算元使用和原始碼解析Spark原始碼
- spark-運算元-分割槽運算元Spark
- 【Spark篇】---SparkStreaming中運算元中OutPutOperator類運算元Spark
- Spark常用Transformations運算元(一)SparkORM
- 【TVM系列三】運算元轉換呼叫流程
- Spark效能調優-RDD運算元調優篇(深度好文,面試常問,建議收藏)Spark面試
- spark一些常用運算元Spark
- spark學習筆記--RDD鍵對操作Spark筆記
- Flink -- Operator操作運算元
- spark-RDDSpark
- Spark RDD APISparkAPI
- Spark 系列(十四)—— Spark Streaming 基本操作Spark
- Spark - [03] RDD概述Spark
- Spark效能優化:對RDD持久化或CheckPoint操作Spark優化持久化
- 更好用的map函式 flatMap函式
- Flink的DataSet基本運算元總結
- spark RDD,reduceByKey vs groupByKeySpark
- Spark 的核心概念 RDDSpark
- 圖解Spark排序運算元sortBy的核心原始碼圖解Spark排序原始碼
- Spark 簡單例項(基本操作)Spark單例
- Spark RDD 特徵及其依賴Spark特徵
- spark學習筆記--RDDSpark筆記
- Spark RDD中Runtime流程解析Spark
- SparkSQL /DataFrame /Spark RDD誰快?SparkSQL
- python中字串基本操作以及三種位運算Python字串
- Spark(十三) Spark效能調優之RDD持久化Spark持久化
- Spark RDD的預設分割槽數:(spark 2.1.0)Spark
- Spark RDD在Spark中的地位和作用如何?Spark
- 執行緒的狀態轉換以及基本操作執行緒
- Java物件轉換成MapJava物件