Put data to HBase
更新日期:
将股票数据存入HBase
使用的数据文件为Setup single-node Hadoop and load stock data
中从网易财经导出的csv文件,文件名为数据日期, 例如2016-08-26.csv
。
创建HBase表
参考The Apache HBase Shell, 可将命令存成文件,再由hbase shell执行。
表名stock-data1
, 列簇price
, 保存为文件 create_stock_table_hbase.txt
:
1 | create 'stock-data1', 'price' |
执行:
1 | $HBASE_HOME/bin/hbase shell ./create_stock_table_hbase.txt |
python代码
实现的步骤:
- 打开文件,按行读取,再按逗号
,
分割成字段列表。 - 根据第一行各列名称生成dict, 加入由文件名得到的日期。
- 转换成HBase接口的TPut数据结构,调用HBase thrift接口。 rowid:
<stock-symbol>:<date>
使用到的thrift结构与函数:
- 结构:
TPut
,TColumnValue
- 函数:
THBaseService.Client.put()
注意: hbase.thrift
中声明的row, value都是binary
,在python 2.7的代码都需要转成str
, 字符串使用utf-8编码。
1 | def import_stock_data(hbase_client, data_file): |