【问题标题】:List Hbse tables using Spark SQL使用 Spark SQL 列出 Hbase 表
【发布时间】:2017-01-22 06:36:27
【问题描述】:

我想使用 Spark SQL 列出 Hbase 表。

尝试了下面的代码,但它不起作用。我们是否需要在 Spark sql 上下文选项中设置 hbase 主机、zookeeper quorum 等详细信息?

    val sparkConf = new SparkConf().setAppName("test")
val sc= new SparkContext(sparkConf)
val sqlContext = new SQLContext(sc)
val hiveContext = new HiveContext(sqlContext)
val listOfTables = hiveContext.sql("list")
listOfTables.show

【问题讨论】:

    标签: scala hbase apache-spark-sql


    【解决方案1】:

    AFAIK,spark sql 不可能直接访问 hbase 表。

    hivecontext 只知道 hivemetastore 中的表。

    • 所以我建议从 hive 创建外部表,如下例所示..

    创建表用户( userid int, name string, email string, notes string) 存储者 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 具有SERDE属性( “hbase.columns.mapping”= ”small:name,small:email,large:notes”);

    然后你可以使用

    tbls = hiveContext.sql("show tables")
      tbls.show()
    
    • 或者,您可以使用 approach 不使用 spark sql

    在这里使用 HbaseAdmin,我们正在计算表的行数而不是那个.. 在您的情况下,您可以使用 HbaseAdmin (getTableNames())

    HbaseAdmin

    【讨论】:

    • 感谢您的回答,我们目前正在使用 HortonWorks 的 Spark HBase 连接器来读取和写入表,并且工作正常,只是想要一些 POC,这就是我发布的原因。
    猜你喜欢
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    相关资源
    最近更新 更多