RDD 檔案讀取與保存
Spark 的資料讀取及資料保存可以從兩個維度來作區分:檔案格式以及檔案系統,其中:
(1)檔案格式分為:text 檔案、csv 檔案、sequence 檔案以及Object 檔案;
(2)檔案系統分為:本地檔案系統、HDFS、HBASE 以及資料庫,
(這里只介紹常見的text 檔案、sequence 檔案以及Object 檔案)
檔案介紹
text檔案: text檔案是文本檔案,
sequence 檔案: SequenceFile 檔案是Hadoop 用來存盤二進制形式的key-value 對而設計的一種平面檔案(Flat File),
object檔案: object檔案是將物件序列化后保存的檔案,采用Java 的序列化機制(注:序列化要指定型別),
案例實操
檔案保存
package com.atguigu.bigdata.spark.core.rdd.io
import org.apache.spark.{SparkConf, SparkContext}
object Spark01_RDD_IO_Save {
def main(args: Array[String]): Unit = {
val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("Spark01_RDD_IO_Save ")
val sc = new SparkContext(sparkConf)
val rdd = sc.makeRDD(
List(
("a", 1),
("b", 2),
("c", 3),
("d", 4)
)
)
//保存檔案
rdd.saveAsTextFile("output")
rdd.saveAsObjectFile("output1")
rdd.saveAsSequenceFile("output2")
sc.stop()
}
}
檔案讀取
package com.atguigu.bigdata.spark.core.rdd.io
import org.apache.spark.{SparkConf, SparkContext}
object Spark02_RDD_IO_Load {
def main(args: Array[String]): Unit = {
val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("Spark02_RDD_IO_Load ")
val sc = new SparkContext(sparkConf)
//讀取檔案的資料
val rdd = sc.textFile("output")
println(rdd.collect().mkString(","))
val rdd1 = sc.objectFile[(String,Int)]("output1")
println(rdd1.collect().mkString(","))
val rdd2 = sc.sequenceFile[String,Int]("output2")
println(rdd2.collect().mkString(","))
sc.stop()
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/295598.html
標籤:其他
上一篇:大資料——Hadoop集群調優
下一篇:flink sql client 連接kafka決議avro資料 (avro ArrayIndexOutOfBoundsException 解決辦法)
