Spark算子[18]:saveAsTextFile、saveAsObjectFile 源码实例详解

本文详细解析了Spark的saveAsTextFile和saveAsObjectFile算子,包括它们的使用方法、源码分析及实战案例。saveAsTextFile将RDD保存为压缩文本文件,依赖于saveAsHadoopFile,而saveAsObjectFile则是将RDD元素序列化存储。实战中,提供了删除目录的Utils辅助函数,并提醒了本地文件系统的保存位置仅存在于Executor机器上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、saveAsTextFile

将此RDD保存为一个压缩文本文件,使用元素的字符串表示形式。

第一个参数:Path为保存的路径;
第二个参数:codec为压缩编码格式;

从源码中可以看到,saveAsTextFile函数是依赖于saveAsHadoopFile函数,由于saveAsHadoopFile函数接受PairRDD,所以在saveAsTextFile函数中利用rddToPairRDDFunctions函数转化为(NullWritable,Text)类型的RDD,然后通过saveAsHadoopFile函数实现相应的写操作。

def saveAsTextFile(path: String): Unit
def saveAsTextFile(path: String, codec: Class[_ <: CompressionCodec]): Unit

/**
 * Save this RDD as a compressed text file, using string representations of elements.
 */
def saveAsTextFile(path: String, codec: Class[_ <: CompressionCodec]): Unit = withScope {
  // https://issues.apache.org/jira/browse/SPARK-2075
  val nullWritableClassTag = implicitly[ClassTag[NullWritable]]
  val textClassTag = implicitly[ClassTag[Text]]
  val r = this.mapPartitions { iter =>
    val text = new Te
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生命不息丶折腾不止

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值