数据源的Spark SQL封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据源的Spark SQL封装相关的知识,希望对你有一定的参考价值。

我有一个数据集,其中98%(大于1天)的数据将存在于Parquet文件中,而2%(当前日期-实时提要)的数据将处于HBase中,我总是需要将它们结合起来才能得到该特定表或实体的最终数据集。

因此,我希望我的客户像下面这样以无缝的方式使用数据来访问Spark或通过Spark Shell或任何BI工具使用它们

spark.read.format("my.datasource").load("entity1")

内部,我将从镶木地板和hbase中读取entity1的数据,然后将它们合并并返回。

我在Google上搜索并获得了一些有关扩展DatasourceV2的示例,其中大多数说您需要开发阅读器,但是这里我不需要新的阅读器,但是需要使用现有的阅读器(镶木地板和HBase)。

因为我没有像这样引入任何新的数据源,所以我需要创建新的数据源吗?还是有更高级别的抽象/钩子可用?

答案

您必须自己实现一个新的数据源“ parquet + hbase”,在实现中,您将利用现有的parquet和hbase读取器,可能会同时扩展它们的类并对其进行合并等

供您参考,这里有一些链接,可以帮助您实现新的DataSource。

火花“ bigquery”数据源实现

https://github.com/GoogleCloudDataproc/spark-bigquery-connector

实现自定义数据源

https://michalsenkyr.github.io/2017/02/spark-sql_datasource

以上是关于数据源的Spark SQL封装的主要内容,如果未能解决你的问题,请参考以下文章

Spark-SQL 数据帧外部数据源效率低

大数据之Spark:Spark SQL

大数据(spark sql 和 spark dataframes 连接)

08Spark常用RDD变换

Spark学习 Spark SQL

java oracle sql spark啥关系