第5章 数据读取与保存

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010819416/article/details/82824452

5.1 动机
三类常见的数据源:
1)文件格式与文件系统

2)Spark SQL中的结构化数据源

3)数据库与键值存储

5.2 文件格式
对多种文件格式的读取和保存方式都很简单。

5.2.1 文本文件

  1. 读取文本文件
  • textFile()
  • wholeTextFiles()

2.保存文本文件

  • saveAsTextFile()
    接收一个路径, 会在那个目录下输出多个文件,这样,Spark可以从多个节点上并行输出。

5.2.2 JSON

  1. 读取JSON
    将数据作为文本文件读取。

  2. 保存JSON
    字符串RDD写出文件

5.2.3 逗号分隔值与制表符分隔值(csv)

  1. 读取CSV
    文件
  2. 保存CSV
    文件

5.2.4 SequenceFile
常用的Hadoop格式。

5.2.5 对象文件

5.2.6 Hadoop输入输出格式

5.3 文件系统
支持读写很多种文件系统

5.3.1 本地/"常规"文件系统
只需要指定输入为一个file://路径

5.3.2 Amazon S3

5.3.3 HDFS
使用HDFS,只需要将输入输出路径指定为hdfs://master:port/path就够了。

5.4 Spark SQL中的结构化数据
把一条SQL查询给Spark SQL,让它对一个数据源执行查询,然后得到由Row对象组成的RDD,每个Row对象表示一条记录。Row对象的访问是基于下标。

5.4.1 Apache Hive

5.4.2 JSON
要读取JSON数据,和使用Hive一样创建一个HiveContext,然后使用HiveContext.jsonFile方法从整个文件中获取有Row对象组成的RDD。

5.5 数据库
通过数据库提供的Hadoop连接器或者自定义的Spark连接器,Spark可以访问一些常用的数据库系统

5.5.1 Java数据库连接
可以从任何支持Java数据库连接(JDBC)的关系型数据库中读取数据。

5.5.2 Cassandra

5.5.3 HBase

5.5.4 Elasticsearch

5.6 总结

猜你喜欢

转载自blog.csdn.net/u010819416/article/details/82824452