Pyspark访问Hbase

作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/7347167.html 转载请注明出处

记录自己最近抽空折腾虚拟机环境时用spark2.0的pyspark访问Hbase1.2时遇到的问题及解决过程.


连接准备

快速用pyspark访问Hbase中的表进行测试,代码如下(注意,其中的host和inputtable是已经定义好的主机和表名变量)

spark = SparkSession.builder.master("yarn-client").appName("statistics").getOrCreate()

hbaseconf = {"hbase.zookeeper.quorum":host,"hbase.mapreduce.inputtable":inputtable}

keyConv = "org.apache.spark.examples.pythonconverters.ImmutableBytesWritableToStringConverter"

valueConv = "org.apache.spark.examples.pythonconverters.HBaseResultToStringConverter"

hbase_rdd = spark.sparkContext.newAPIHadoopRDD(\
"org.apache.hadoop.hbase.mapreduce.TableInputFormat",\
"org.apache.hadoop.hbase.io.ImmutableBytesWritable",\
"org.apache.hadoop.hbase
要在Python中访问HBase,您需要使用HBase的Python客户端库。有两个主要的Python客户端库可供选择: 1. happybase:这是最流行的Python客户端库之一,它提供了一个简单的接口来连接和操作HBase。您可以使用pip命令来安装它: ``` pip install happybase ``` 以下是一个使用happybase库连接到HBase并读取数据的示例代码: ```python import happybase # connect to HBase connection = happybase.Connection('localhost', port=9090) # select a table table = connection.table('my_table') # read data from the table for key, data in table.scan(): print(key, data) ``` 2. hbasespark:这是一个专门为Apache Spark设计的Python客户端库,它允许您在Spark中使用HBase。您可以使用pip命令来安装它: ``` pip install hbasespark ``` 以下是一个使用hbasespark库连接到HBase并读取数据的示例代码: ```python from pyspark import SparkContext, SparkConf from hbasespark import HBaseContext # create a Spark context conf = SparkConf().setAppName("MyApp") sc = SparkContext(conf=conf) # create an HBaseContext hbase_host = "localhost" hbase_port = "9090" hbase_table = "my_table" hbase_context = HBaseContext(sc, {"hbase.zookeeper.quorum": hbase_host, "hbase.zookeeper.property.clientPort": hbase_port}) # read data from the table def read_data(row): table = hbase_context.table(hbase_table) data = table.get(row) return (row, data) rows = ["row1", "row2", "row3"] data = sc.parallelize(rows).map(read_data).collect() print(data) ``` 请根据您的需求选择适合您的库。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值