Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 数据源的sparksql封装_Apache Spark_Apache Spark Sql - Fatal编程技术网

Apache spark 数据源的sparksql封装

Apache spark 数据源的sparksql封装,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我有一个数据集,其中98%(早于一天)的数据将在拼花地板文件中,2%(当前日期-实时提要)的数据将在HBase中,我总是需要将它们合并以获得特定表或实体的最终数据集 因此,我希望我的客户能够像下面这样无缝地使用数据,使用任何语言访问spark,或通过spark shell或任何BI工具 spark.read.format("my.datasource").load("entity1") 在内部,我将从拼花地板和hbase读取entity1的数据,然后将它们合并并返回 我在谷歌上搜索了几个关于扩

我有一个数据集,其中98%(早于一天)的数据将在拼花地板文件中,2%(当前日期-实时提要)的数据将在HBase中,我总是需要将它们合并以获得特定表或实体的最终数据集

因此,我希望我的客户能够像下面这样无缝地使用数据,使用任何语言访问spark,或通过spark shell或任何BI工具

spark.read.format("my.datasource").load("entity1")
在内部,我将从拼花地板和hbase读取entity1的数据,然后将它们合并并返回

我在谷歌上搜索了几个关于扩展DatasourceV2的例子,大多数都说您需要开发reader,但这里我不需要新的reader,而是需要利用现有的reader(拼花地板和HBase)


由于我没有引入任何新的数据源,我是否需要创建新的数据源?或者是否有更高级别的抽象/钩子可用?

您必须实现一个新的数据源本身“parquet+hbase”,在实现过程中,您将利用parquet和hbase的现有读取器,可能会使用这两个读取器扩展您的类并将它们合并等

这里有一些链接供您参考,它们可以帮助您实现新的数据源

spark“bigquery”数据源实现

实现自定义数据源


在浏览了下面的各种资源之后,我发现并实现了相同的功能。 它可能会帮助某人,所以添加它作为答案

只有在引入新数据源时,才需要自定义数据源。为了组合现有的数据源,我们必须扩展SparkSession和DataFrameReader。在扩展数据帧读取器中,我们可以调用spark parquet读取方法、hbase读取器并获得相应的数据集,然后组合这些数据集并返回组合的数据集

在scala中,我们可以使用隐式向spark会话和数据帧添加自定义逻辑


在java中,我们需要扩展spark会话和数据帧,然后在使用它时使用扩展类的导入

您是否使用apache phoenix进行hbase?目前我们的集群中没有phoenix。您如何访问hbase表??是从蜂巢里来的吗??或者,如果你有任何代码,你可以发布代码吗?你还提到了2%的实时提要,这些数据是从哪里读取的?是卡夫卡传来的吗??