spark 读写SequenceFile

DataFrame

没有相关API,df可以转为RDD然后再用,另外 也是只有pairRDD才能用

RDD

  def save3(): Unit = {
    val spark: SparkSession = SparkSession.builder().master("local[1]").appName("test").getOrCreate()
    //只有pairRDD才能存储为SequenceFile
    //一般你随便读个json 很多字段是没法保存成SequenceFile的
    val rdd: RDD[(String, Int)] = spark.sparkContext.parallelize(List(("a", 1), ("b", 2)))
    rdd.saveAsSequenceFile("data/dir1")
  }

读取

  def read3(): Unit = {
    val spark: SparkSession = SparkSession.builder().master("local[1]").appName("test").getOrCreate()
    //读取时必须指定SequenceFile kv的泛型,不然会报错的
    val rdd: RDD[(String, Int)] = spark.sparkContext.sequenceFile[String, Int]("data/dir1")
    println(rdd.collect().mkString(","))//(a,1),(b,2)
  }

总结

  • SequenceFile只能用于pairRDD,局限性很大

参考

How to save Spark Data Frames to Sequence File - Big Data / Apache Spark - itversity

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鸭梨山大哎

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

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

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

打赏作者

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

抵扣说明:

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

余额充值