数据源的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封装的主要内容,如果未能解决你的问题,请参考以下文章