黑猴子的家:Spark RDD SequenceFile文件输入输出(数据读取与保存的主要方式之一)...

SequenceFile文件是Hadoop用来存储二进制形式的key-value对而设计的一种平面文件(Flat File)。

Spark 有专门用来读取 SequenceFile 的接口。在 SparkContext 中,可以调用 sequenceFile keyClass, valueClass

scala> val data = sc.parallelize(List((2,"aa"),(3,"bb"),(4,"cc"),(5,"dd"),(6,"ee")))
data: org.apache.spark.rdd.RDD[(Int, String)] 
            = ParallelCollectionRDD[1] at parallelize at <console>:24

scala> data.saveAsSequenceFile("hdfs://hadoop102:9000/sequdata")

scala> val sdata = sc.sequenceFile[Int,String]("hdfs://hadoop102:9000/sequdata/p*")
sdata: org.apache.spark.rdd.RDD[(Int, String)] 
            = MapPartitionsRDD[6] at sequenceFile at <console>:24

scala> sdata.collect
res1: Array[(Int, String)] = Array((2,aa), (3,bb), (4,cc), (5,dd), (6,ee))

可以直接调用 saveAsSequenceFile(path) 保存你的PairRDD,它会帮你写出数据。需要键和值能够自动转为Writable类型。

Scala 类型Java类型Hadoop Writable 类型
IntIntegerInWritable 或VInWritable
LongLongLongWritable或VLongWritable
FloatFloatFloatWritable
DoubleDoubleDoubleWritable
BooleanBooleanBooleanWritable
Array[Byte]byte[]BytesWritable
StringStringText
Array[T]T[]ArrayWritable<TW>
List[T]List[T]ArrayWritable<TW>
Map[A,B]Map<A,B>MapWritable<AW,BW>
9193428-74a2590161a3ac45.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值