使用happybase连接hbase数据库,利用Jupyter在网页中爬取一个表格数据存储进txt中,再把数据导入hbase中
我这里使用了requests和BeautifulSoup库,爬完以后存储为txt文件
import requests
from bs4 import BeautifulSoup
url = 'URL'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table')
with open('data.txt', 'w') as f:
for row in table.find_all('tr'):
for cell in row.find_all('td'):
f.write(cell.text)
f.write('\\t')
f.write('\\n')
table_name = 'table'
column_family = '簇名'
table = connection.table(table_name)
with open('data.txt', 'r') as f:
for line in f:
row_key, data = line.strip().split('\\t')
table.put(row_key, {column_family + ':data': data})
要将文本数据导入到 HBase 中,你可以按照以下步骤进行操作:
安装和配置 HBase:首先,确保已经安装和配置了 HBase 数据库,并且可以通过 HappyBase 库进行连接。确保 HBase 服务正在运行。
安装 HappyBase 库:使用 pip
命令安装 HappyBase 库,它提供了 Python 对 HBase 数据库的访问接口。
pip install happybase
导入所需的库和模块:
import happybase
连接到 HBase:
connection = happybase.Connection(host='<HBase主机名>', port=<HBase端口号>)
创建表:
connection.create_table(
'my_table',
{
'cf1': dict(), # 列族 cf1
'cf2': dict() # 列族 cf2
}
)
读取数据并导入到 HBase:
with open('data.txt', 'r') as file:
for line in file:
# 解析数据
row_key, col1, col2 = line.strip().split('\t')
# 获取表
table = connection.table('my_table')
# 插入数据
table.put(row_key, {'cf1:col1': col1, 'cf2:col2': col2})
在这个例子中,假设数据文件 data.txt
中的每一行包含三列,使用制表符分隔,分别是行键(row_key)、列族 cf1 的列 col1 和列族 cf2 的列 col2。
关闭连接:
connection.close()
这样,你就可以将文本数据导入到 HBase 中了。请确保根据你的实际情况修改连接信息、数据文件路径和表结构。同时,使用 Jupyter 爬取表格数据存储为文本文件的部分可以使用适合你的爬虫库和方法实现。