spark源码分析之spark-hive

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

继续看源码
这里详细说一下spark-hive的源码
一、源码下载以及用idea打开
附上我第一次写的链接,前面有 仔细说,大多数人应该都知道怎么弄http://blog.csdn.net/flyinthesky111/article/details/79379309
二、源码分析
废话不多说,直接看吧。
咱们先看一下hive的客户端的代码,这里我先打开的是客户端的做(特质)接口
对于这个(特质)接口,作者 给出了这样一段注释:An externally visible interface to the Hive client. This interface is shared across both the internal and external classloaders for a given version of Hive and thus must expose only shared classes.大概意思呢就是说这是一个外部可见的接口,这个借口能够为hive连接内部和外部的类加载器,而且它只会公开共享类的资源。
接着咱们看一看这个接口里面有哪些方法
第一个就是hive的版本,用于返回当前客户端的hive版本
第二个是从当前会话中返回指定key的配置信息
第三个重要的就是运行hiveSQL的方法了,他通过hive运行hql的命令,返回一系列的字符串结果集,每一行都以一个字符串作为一个结果
接下来三个方法没有返回值,略过
紧接着的listTables是通过给定的数据集返回所有表的表名
同时还有一个通过有匹配模式的数据集进行的表名返回
这里写图片描述
紧接着,又给当前的数据set了一个名字
getDatabase
会返回这个数据的元数据信息,如果没有,就会抛出异常
然后又是一个判断指定视图/表是否存在的方法 databaseExists
getTable
返回指定的表(传入数据库信息,表名),获取不到就抛出NoSuchTableException的异常,这个异常大家应该见过的
getTableOption
返回指定表的元数据信息,没有的话就为none
createTable
通过指定的信息,创建表
dropTable
删除指定表
alterTable
用新的元数据信息更新指定表,并且重命名
alterTableDataSchema
通过数据的schema信息个表的配置信息更新指定表
下面的方法和上面的内容差不多,只不过操作对象从表换成数据库,换成分区,换成Function
然后就是加载的方法
loadPartition
loadTable
loadDynamicPartitions
至此,这个接口的方法大致就有一个印象了
接口实现类的话有具体深究每个方法实现的道友可以仔细看一看,这里面都是对于接口中的方法的具体实现,篇幅有限,就不仔细说了。

猜你喜欢

转载自blog.csdn.net/flyinthesky111/article/details/79385171