zoukankan      html  css  js  c++  java
  • Spark基础:(四)Spark 数据读取与保存

    1、文件格式

    Spark对很多种文件格式的读取和保存方式都很简单。
    (1)文本文件
    读取:
    将一个文本文件读取为一个RDD时,输入的每一行都将成为RDD的一个元素。

    val input=sc.textFile("...")

    也可以将多个完整的文本文件读取为一个pair RDD,其中键为文件名,值是文件内容。
    例如:

    val input=sc.whoTextFiles("...")

    保存:

    resulet.saveAsTextFile(outputfile)

    (2)JSON
    读取:
    json是一种半结构化的数据格式,首先是可以像上述的文本文件一样来读取,然后进行解析。
    在python中:

    import json
    data=input.map(lambda x: json.loads(x))

    在scala中

     rdd=spark.read.json("...")

    保存:

    result=result.map(mapper.writeValueAsString(_))

    (3)CSV文件

    scala读取

    import org.apache.spark.{SparkConf, SparkContext}
    import java.io.StringReader
    
     val input = sc.textFile("...")
        input.foreach(println)
        val result = input.map{
          line =>
            val reader = new CSVReader(new StringReader(line))
            reader.readNext()
        }

    scala保存

    case class Person{name:String, fa:String}
    
    val input=sc.whoTextFiles("...")
    val result=input.flatMap(case (_,txt)=>
    val reader=new CSVReader(new StringReader(txt));
    reader.readAll().map(x=>Person(x(0),x(1)))
    )

    2、文件压缩

    在大数据中,需要对数据进行压缩以节省存储空间和减少网络传输开销。 对大多数Hadoop输出格式来说,可指定一种压缩编解码器来压缩数据。 读压缩数据时,一些压缩编解码器可以推测压缩类型Spark(基于Hadoop神生态构建)原生的输入方式textFile和sequenceFile可自动处理一些类型压缩
    这里写图片描述

    3、文件系统

    (1)HDFS
    在Spark中使用HDFS 只要将输入路径指定为: hdfs://master:port/path 就好了

    (2)Hive文件
    要将hive-site.xml文件复制到Spark的../conf/目录下

    还有其他的

    希望在知识中书写人生的代码
  • 相关阅读:
    注册表解锁
    Windows错误代码大全 2
    硬盘数据线的问题
    vs2010与C#4.0新特性
    (转载)C语言负数的移位运算
    (转载)看C语言编码转换负数的二进制表示方法
    (转载)C语言右移运算符的问题(特别当与取反运算符一起时)
    (转载)Qt中使用cout输出的方法
    (转载)QPainter的用法
    (转载)Qt计算MD5
  • 原文地址:https://www.cnblogs.com/tongxupeng/p/10259548.html
Copyright © 2011-2022 走看看