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.

 

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