apache-spark - 如何在安全的 Hbase 表上创建 Spark Dataframe(v1.6)?
问题描述
我正在尝试在现有的 HBase 表上创建一个 spark 数据框(HBase 通过 Kerberos 保护)。我需要在这个表上执行一些 spark Sql 操作。
我尝试在 Hbase 表上创建 RDD,但无法将其转换为数据框。
解决方案
您可以使用 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
推荐阅读
- reactjs - ReactJS:组件未在嵌套路由中呈现
- javascript - 我用 JavaScript 创建了一个日期计算器,但即使 setInterval() 也无法更新数字
- ruby-on-rails - Rails + PostgreSQL:如果一列中的值为NULL,则按另一列中的值搜索
- wpf - 锣拖拽:拖拽效果边框不适合元素
- c++ - 视图对象的 const 返回类型
- linux - 物理服务器 Centos“开始更新 UTMP 关于系统启动/关闭”
- android - ListAdapter Diff 不会在同一个列表实例上分派更新,但也不会在与 LiveData 不同的列表上分派更新
- c# - 如何使用 StackPanel 动态调整 ScrollViewer 的大小?
- python - 无输出/密码打印 - zip 破解程序 进程以退出代码 0 完成
- javascript - Vuejs - 为什么一个方法的触发也会通过v-if触发一个不相关的方法