RDD Resilient Distributed Datasets彈性分散式數據集 Spark revolves around the concept of a resilient distributed dataset (RDD), which is a fault-tolerant colle ...
RDD Resilient Distributed Datasets
彈性分散式數據集
Spark revolves around the concept of a resilient distributed dataset (RDD), which is a fault-tolerant collection of elements that can be operated on in parallel. There are two ways to create RDDs: parallelizing an existing collection in your driver program, or referencing a dataset in an external storage system, such as a shared filesystem, HDFS, HBase, or any data source offering a Hadoop InputFormat.
可被並行處理的容錯元素集合
RDD支持兩種操作
transformations and actions
Transformations
創建新的數據集在已經存在的數據集中。通過函數處理數據集元素,然後返回一個新的RDD。所有Transformations操作都是懶操作。所有transformations操作都是通過actions操作觸發的。
Actions
對數據集進行計算,然後返回結果給driver program.
持久化
RDD寬依賴
Shuffle(洗牌)操作
理解閉包
列印元素
列印RDD元素可以考慮使用如下方法:
rdd.foreach(println) or rdd.map(println)
但是只能應用在local模式,如果運行在cluster模式,輸出會在不同的executor節點。
在cluster模式可以考慮此方法:
rdd.collect().foreach(println)
但此方式是將所有RDD元素都取回到driver節點。如果數據量過大可能導致記憶體溢出。
如果只是列印部分數據,進行查看,可以考慮如下方法:
rdd.take(100).foreach(println)
廣播變數
累加器