数据读取和保存

文件格式:Text文件,Json文件,Csv文件,Sequence文件,Object文件

文件系统:本地文件系统,HDFS,HBASE以及数据库

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

import scala.util.parsing.json.JSON

//map(func)
object json {
  def main(args: Array[String]): Unit = {
    //本地模式
    val conf: SparkConf = new SparkConf().setAppName("My scala word count").setMaster("local")

    //创建spark上下文对象
    val sc = new SparkContext(conf)

    //1.txt文件,csv文件,json文件,hdfs文件
    //json文件的每一行是一个json目录

    //读取;sc.textFile
    val textRDD: RDD[String] = sc.textFile("in/user.txt")
    textRDD.foreach(println)

    //保存:value.saveAsTextFile
    textRDD.saveAsTextFile("out/user.txt")



    //2.sequence文件
    //sequence文件是Hadoop用来存放二进制形式的key-value对而涉及的一种平面文件(Flat File)

    //读取:sc.sequenceFile
    val sequenceFileRDD: RDD[(String, Int)] = sc.sequenceFile[String,Int]("out/userSeqFile")
    sequenceFileRDD.foreach(println)
    //保存:value.saveAsSequenceFile
    val value: RDD[(String, Int)] = sc.makeRDD(List(("qiao",123),("wang",456),("li",789)))
    value.saveAsSequenceFile("out/userSeqFile")


    //3.对象文件
    //对象文件是将对象序列化之后保存的文件,采用java的序列化机制

   //读取:sc.objectFile
    val objectRDD: RDD[Nothing] = sc.objectFile("out/userObjectFile")
    objectRDD.foreach(println)

    //保存:value.saveAsObjectFile
    val rdd: RDD[Int] = sc.makeRDD(List(1,2,3,4))
    val objectRDD2: Unit = rdd.saveAsObjectFile("out/userObjectFile")
//    sc.stop()
  }


}

 

posted on 2020-09-30 14:35  happygril3  阅读(117)  评论(0)    收藏  举报

导航