Spark SQL 下DateFrame的初步认识(3)

概要:Spark SQL对数据的操作涉及到对数据的输入、输出,其实主要就是操作DataFrame。通过DataFrameReader的load方法可以创建DataFrame,通过DataFrameWriter的save方法可以把DataFrame中的数据保存到具体文件。我们可以通过设置具体的格式参数来指出读取的文件是什么类型,以及通过设置具体的格式参数来指出输出的文件是什么类型。

1, Spark SQL 加载数据流程

SQLContext中有load方法,实际上也就是使用了DataFrameReader的load方法。目前的Spark 1.6.0中,虽然SQLContext还有load方法,但已被设置为@deprecated。也就是说在Spark 2.0中SQLContext可能不再使用load方法。
DataFrameReader用来从外部存储系统(比如:文件系统,键值存储库,等等)读取数据,并返回DataFrame对象。
DataFrameReader有format方法,用来设置输入数据源的格式。
DataFrameReader用load方法,把外部数据加载进来,变成一个DataFrame。各种load方法,最终实际是使用以下load方法:

这里写图片描述
DataFrameReader的load方法是生成ResolvedDataSource对象,再使用该对象生成并返回一个DataFrame对象。
查看ResolvedDataSource的apply方法,可以发现其中是通过模式匹配来对各种类型的数据源分别进行处理,生成ResolvedDataSource对象。
查看ResolvedDataSource的backwardCompatibilityMap,可以知道,Spark SQL可以用来处理jdbc访问的数据库、json文件、parquet等多种来源的数据。
查看ResolvedDataSource的lookupDataSource方法,可以知道,Spark SQL可以处理Avro、Hive的ORC、访问Hadoop的文件系统等各种文件。
理论上讲,Spark SQL可以支持所有格式数据源。
DataFrame类中有this、toDF、printSchema、explain、show等常用方法。

2, Spark SQL保存数据

DataFrame中有各种save方法,实际上也就是使用了DataFrameWriter的save方法。
目前的Spark 1.6.0中虽然DataFrame还有save方法,但已被设置为@deprecated。也就是说在Spark 2.0中DataFrame可能不再使用save方法。
用以下程序S

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值