使用sparksql列出hbse表

jmp7cifd  于 2021-06-10  发布在  Hbase
关注(0)|答案(1)|浏览(286)

我想列出使用sparksql的hbase表。
尝试以下代码,但它不工作。我们是否需要在spark sql上下文选项中设置hbase主机、zookeeper仲裁等详细信息?

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
zzoitvuj

zzoitvuj1#

另外,sparksql不可能直接访问hbase表。

hivecontext只知道hivemetastore中的表。

所以我建议从配置单元创建externaltable,如下例所示。。
创建“org.apache.hadoop.hive.hbase.hbasestoragehandler”使用serdeproperties(“hbase.columns.mapping”=”存储的表用户(userid int、name string、email string、notes string)small:name,small:email,large:notes”);
然后你可以用

tbls = hiveContext.sql("show tables")
  tbls.show()

或者,您可以在不使用sparksql的情况下使用这种方法。
在这里使用hbaseadmin,我们对表进行行计数,而不是。。在您的示例中,可以使用hbaseadmin(gettablenames())
见hbaseadmin

相关问题