Вот простой способ чтения данных HBase из Python с использованием API Happybase и Thrift Server.
Чтобы запустить Thrift-сервер на сервере Hbase:
/YOUR_HBASE_BIN_DIR/hbase-daemon.sh start thrift
Затем из Python:
import happybase
HOST = 'Hbase server host name here'
TABLE_NAME = 'MyTable'
ROW_PREFIX = 'MyPrefix'
COL_TXT = 'CI:BO'.encode('utf-8') # column family CI, column name BO (Text)
COL_LONG = 'CI:BT'.encode('utf-8') # column family CI, column name C (Long)
conn = happybase.Connection(HOST) # uses default port 9095, but provide second arg if non-default port
myTable = conn.table(TABLE_NAME)
for rowID, row in myTable.scan(row_prefix=ROW_PREFIX.encode('utf-8')): # or leave empty if want full table scan
colValTxt = row[COL_TXT].decode('utf-8')
colValLong = int.from_bytes(row[COL_LONG], byteorder='big')
print('Row ID: {}\tColumn Value: {}'.format(rowID, colValTxt))
print('All Done')
Как обсуждалось в комментарии, это не сработает, если вы попытаетесь передать вещи работникам Spark, так как указанное выше соединение HBase не сериализуемо.Таким образом, вы можете запускать этот тип кода только из основной программы.Если придумаете выход - поделитесь!