Sha256: 57f8193a09f322f74b8591197bcb2a18c11926d93c5d556988a1571825f08482
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
require 'thrift' require File.join(File.dirname(__FILE__), 'hbase', 'hbase_constants') require File.join(File.dirname(__FILE__), 'hbase', 'hbase_types') require File.join(File.dirname(__FILE__), 'hbase', 'hbase') # Try to make the crazy nesting that Thrift generates a little less painful module Hbase Client = ::Apache::Hadoop::Hbase::Thrift::Hbase::Client Apache::Hadoop::Hbase::Thrift.constants.each do |constant| const_set(constant, Apache::Hadoop::Hbase::Thrift.const_get(constant)) end class Client def incrementAndReturn(table_name,amount) c_row = get('table_indices','0',table_name,{})[0].value.to_i n_row = c_row+amount mutateRow('table_indices','0',[HBase::Mutation.new(column: table_name, value: n_row.to_s)],{}) c_row end def getRowsByScanner(table,columns,filters,obj={}) scan = HBase::TScan.new filters = "(RowFilter(>=, 'binary:0'))" if filters == '' scan.filterString = filters scanner = scannerOpenWithScan(table, scan, obj) results = [] scan_end = false while !scan_end scan_result = scannerGet(scanner) if scan_result.length > 0 if columns == '*' results << scan_result[0].columns.each{ |k,v| scan_result[0].columns[k] = v.value } else row_result = {} columns.each{ |k| row_result[k] = scan_result[0].columns[k].value } results << row_result end else scannerClose(scanner) scan_end = true end end results end end end HBase = Hbase
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hipster_sql_to_hbase-0.1.5 | lib/adapter/hbase.rb |