3.4 Spark RDD Action操作5-saveAsTextFile、saveAsSequenceFile、saveAsObjectFile

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yyl424525/article/details/78384627

1 saveAsTextFile
def saveAsTextFile(path: String): Unit
def saveAsTextFile(path: String, codec: Class[_ <: CompressionCodec]): Unit
saveAsTextFile用于将RDD以文本文件的格式存储到文件系统中。
codec参数可以指定压缩的类名。
例子:
var rdd1 = sc.makeRDD(1 to 10,2)
scala> rdd1.saveAsTextFile(“hdfs://cdh5/tmp/lxw1234.com/”) //保存到HDFS
hadoop fs -ls /tmp/lxw1234.com
Found 2 items
-rw-r–r– 2 lxw1234 supergroup 0 2015-07-10 09:15 /tmp/lxw1234.com/_SUCCESS
-rw-r–r– 2 lxw1234 supergroup 21 2015-07-10 09:15 /tmp/lxw1234.com/part-00000

hadoop fs -cat /tmp/lxw1234.com/part-00000
1
2
3
4
5
6
7
8
9
10

注意:如果使用rdd1.saveAsTextFile(“file:///tmp/lxw1234.com”)将文件保存到本地文件系统,那么只会保存在Executor所在机器的本地目录。

指定压缩格式保存:
rdd1.saveAsTextFile(“hdfs://cdh5/tmp/lxw1234.com/”,classOf[com.hadoop.compression.lzo.LzopCodec])

hadoop fs -ls /tmp/lxw1234.com
-rw-r–r– 2 lxw1234 supergroup 0 2015-07-10 09:20 /tmp/lxw1234.com/_SUCCESS
-rw-r–r– 2 lxw1234 supergroup 71 2015-07-10 09:20 /tmp/lxw1234.com/part-00000.lzo

hadoop fs -text /tmp/lxw1234.com/part-00000.lzo
1
2
3
4
5
6
7
8
9
10

2 saveAsSequenceFile
saveAsSequenceFile用于将RDD以SequenceFile的文件格式保存到HDFS上。
用法同saveAsTextFile。

3 saveAsObjectFile
def saveAsObjectFile(path: String): Unit
saveAsObjectFile用于将RDD中的元素序列化成对象,存储到文件中。
对于HDFS,默认采用SequenceFile保存。
例子:
var rdd1 = sc.makeRDD(1 to 10,2)
rdd1.saveAsObjectFile(“hdfs://cdh5/tmp/lxw1234.com/”)

hadoop fs -cat /tmp/lxw1234.com/part-00000
SEQ !org.apache.hadoop.io.NullWritable”org.apache.hadoop.io.BytesWritableT

猜你喜欢

转载自blog.csdn.net/yyl424525/article/details/78384627
今日推荐