Spark操作——行動操作(二)

  • 集合標量行動操作

  • 存儲行動操作

 

存儲行動操作

  • saveAsTextFile(path: String): Unit

  • saveAsTextFile(path: String, codec: Class[_ <: CompresssionCodec]): Unit

    將RDD以文本文件的格式保存到文件系統中,codec參數用於指定壓縮類型

  • saveAsSequenceFile(path: String, codec: Option[Class[_ <: CompressionCodec]] = None): Unit

    將RDD以Sequence的文件格式保存到HDFS文件系統中

  • saveAsObjectFile(path: String): Unit

    將RDD的元素序列化成對象,保存到文件系統中。

scala> var rdd = sc.makeRDD(1 to 10, 2)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[82] at makeRDD at <console>:24

// 輸出兩個文件,因爲分區個數爲2,每個分區對應一個文件
scala> rdd.saveAsTextFile("/Users/lyf/Desktop/output")
  • saveAsHadoopFile(F <: OutputFormat[K, V])(path: String)(implicit fm: ClassTag[F]): Unit

  • saveAsHadoopFile(F <: OutputFormat[K, V])(path: String, codec: Class[_ <: CompressionCodec])(implicit fm: ClassTag[F]): Unit

  • saveAsHadoopFile(path: String, keyClass: Class[_], valueClass: Class[_], outputFormatClass: Class[_ <: OutputFormat[_, _]], codec: Class[_ <: CompressionCodec]): Unit

  • saveAsHadoopFile(path: String, keyClass: Class[_], valueClass: Class[_], outputFormatClass: Class[_ <: OutputFormat[_, _]], conf: JobConf=……, codec: Option[Class[_ <: CompressionCodec]]=None): Unit

    saveAsHadoopFile操作將RDD存儲到HDFS上,支持舊Hadoop API,可以指定outputKeyClass、outputValueClass以及壓縮格式

  • saveAsHadoopDataset(conf: JobConf): Unit

    saveAsHadoopDataset將RDD存儲到除了HDFS的其他存儲中,比如Hbase。JobConf中通常需要設置5個參數:輸出路徑、Key的類型、Value的類型、輸出格式以及壓縮相關的參數

 

  • saveAsNewAPIHadoopFile[F <: OutputFormat[K, V]](path: String): Unit

  • saveAsNewAPIHadoopFile(path: String, keyClass: Class[_], valueClass: Class[_], outputFormatClass: Class[_ <: OutputFormat[_, _]], conf: Configuration=self.context.hadoopConfiguration): Unit

    新版的Hadoop API,功能通saveAsHadoopFile。

 

  • saveAsNewAPIHadoopDataset(conf: Configutation): Unit

    新版的Hadoop API,功能通saveAsHadoopDataset

 

 

參考:

[1] 郭景瞻. 圖解Spark:核心技術與案例實戰[M]. 北京:電子工業出版社, 2017.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章