zoukankan      html  css  js  c++  java
  • Spark读写不同格式数据

    Spark读写不同个数数据

    SPark读取数据

    读取文本文件格式

    val inputTextFile = sc.textFile(path)
    

    可以通过/*.txt读取多个文件。

    读取JSON文件格式

    和文本文件读取函数一样

    val inputJsonFIle = sc.textFIle("path/a.json")
    

    读取CSV、TSV格式数据

    采用flatMap()和split()函数来分割。

    flatMap(_.split(","))
    flatMap(_.split("	"))
    

    读取SequenceFile格式数据

    val inputSequenceFile = sc.sequenceFile[String, String](path)
    

    读取Object格式数据

    val inputObjectFile = sc.objectFile[Person](path)
    

    读取HDFS数据,调用Hadoop API

    val inputHadoopFile = sc.newAPIHadoopFile[LongWritable, Text, TextInputFormat](path, classOf[TextInputFormat], classOf[LongWritable], classOf[Text])
    

    读取MySQL数据库数据

    val inputMysql = new JdbcRDD(sc, 
        () => {
            Class.forName("com.mysql.jdbc.Driver")
            DriverManager.getConnection("jdbc:mysql://bigdata:3306/databasename?", "root", "root")
        },
        "select * from tablename where a >= and b <=;",
        分区数,
        获取实例的列数,
        打印记录数
        )
    

    Spark写入数据

    保存普通文本文件

    rddText.saveAsTextFile(path)
    

    保存JSON文件

    先把数据封装到List集合中,并生成JSONArray对象,然后把该对象放到Map集合中。

    val map1 = Map(JSON(List("内容")))
    
    val rddData = sc.parallelize(List(JSONObject(map1)))
    rddData.saveAsTextFile(path)
    

    保存SequenceFile文件

    rddData.saveAsSequenceFile(path)
    

    保存Object文件

    rddData.saveAsObjectFile(path)
    

    保存HDFS文件

    //用saveAsTextFile()
    saveAsTextFile("hdfs://")
    
    //用saveAsNewAPIHadoopFile()
    rddData.saveAsNewAPIHadoopFIle(path, classOf[Text], classOf[IntWritable], classOf[TextOutputFormat[Text, IntWritable]])
    
  • 相关阅读:
    app缓存设计-文件缓存
    设计模式-模板方式
    设计模式-观察者模式
    java 类加载顺序
    Java项目添加log4j日志文件错误记录
    如何在eclipse中配置反编译工具JadClipse
    eclipse反编译插件jadClipse安装使用教程
    StringUtils工具类的isBlank()方法使用说明
    SLF4J: Failed to load class的问题及解决
    GitHub的Fork 是什么意思
  • 原文地址:https://www.cnblogs.com/chenshaowei/p/13883158.html
Copyright © 2011-2022 走看看