spark-3

数据读取与保存

Spark 支持很多种输入输出源,一部分原因是Spark本身是基于Hadoop生态圈而构建,特别是Spark可以通过Hadoop MapReduce 所使用的InputFormate和 OutputFormate接口访问数据。而大部分常见的文件格式和存储系统都支持这种接口

数据源:

文件格式与文件系统
对于存储在本地文件系统或分布式文件系统(NFS\HDFS)中的数据,spark针对不同文件(文本 json sequenceFile)有不同的配置和压缩选项

SparkSQL中的结构化数据源
针对JSON和ApacheHive在内的结构化数据源,为我们提供了一套更简洁的API。

数据库与键值存储
jdbc源 elasticsearch

5.2 文件格式
Spark 支持的格式:JSON/CSV/SequenceFiles(键值对数据的常见Hadoop文件格式)/ProtocolBuffers(跨语言格式)
对象文件。

文本文件:
在Spark中读写文本文件很容易,将一个文本文件读取为RDD时,输入的每一行都会成为RDD的一个元素。也可以将
多个完整的文本文件一次性读取为一个pairRDD,其中键是文件名,值是文件内容。
sc.textFile(“文件路径”)
sc.wholeTextFiles(“文件路径”) key是文件名,value是文件内容
保存文本文件:result.saveAsTextFile(outputFile)

JSON:

1.读取JSON
将数据作为文本文件读取,然后对JSON数据进行解析,这样的方法可以在所有支持的编程语言中使用。
mapPartitions/ObjectMapper

csv文件
map CSVReader CSVWriter /StringReader StringWriter
读: 将字符串解析为数组
存:将字符串数据解析成字符串,用逗号隔开

SequenceFile

对象文件

saveAsObjectFile :保存
objectFile:接收

Hadoop输入输出格式

文件压缩:

通过数据压缩可以节省存储空间和网路传输开销.

5.3 文件系统
本地文件/HDFS

5.4 SPark SQL中的结构化数据
把一条SQL查询给SPARK SQL ,让他对一个数据源执行查询,然后得到由ROW对象组成的RDD,每个Row对象表示
一条记录。在Java 和Scala中Row对象的访问时基于下标的,每个ROW都有一个get(),会返回一个一般类型让我们可以
进行类型转换,另外还有针对常见基本类型的专用get()

5.5 数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值