首页 > 解决方案 > 如何在安全的 Hbase 表上创建 Spark Dataframe(v1.6)?

问题描述

我正在尝试在现有的 HBase 表上创建一个 spark 数据框(HBase 通过 Kerberos 保护)。我需要在这个表上执行一些 spark Sql 操作。

我尝试在 Hbase 表上创建 RDD,但无法将其转换为数据框。

标签: apache-sparkdataframeapache-spark-sqlhbase

解决方案


您可以使用 HBase 存储处理程序创建 hive 外部表,然后使用该表运行您的 spark-sql 查询。

创建 hive 外部表:

CREATE TABLE foo(rowkey STRING, a STRING, b STRING)
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’
WITH SERDEPROPERTIES (‘hbase.columns.mapping’ = ‘:key,f:c1,f:c2’)
TBLPROPERTIES (‘hbase.table.name’ = ‘bar’);

Spark-sql: val df=spark.sql("SELECT * FROM foo WHERE ...")

注意:这里的 spark 是 SparkSession


推荐阅读