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]])
    
  • 相关阅读:
    vs2013 调用只有dll文件的动态库(一)
    剑指offer 34.二叉树中和为某一值的路径
    JQuery中bind和unbind函数与onclick绑定事件区分
    实现 select中指定option选中触发事件
    页面中的checkbox多选值获取
    页面中href链接的碰撞
    页面中onclick事件引号问题
    页面间传输参数(两种传参方法)
    js的非空校验
    时间控件,选择日期
  • 原文地址:https://www.cnblogs.com/chenshaowei/p/13883158.html
Copyright © 2011-2022 走看看