我想列出使用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
1条答案
按热度按时间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”);
然后你可以用
或者,您可以在不使用sparksql的情况下使用这种方法。
在这里使用hbaseadmin,我们对表进行行计数,而不是。。在您的示例中,可以使用hbaseadmin(gettablenames())
见hbaseadmin