Class: HBase::Row

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/hbase-jruby/row.rb

Overview

Represents a set of key-values returned by HBase

Author:

Instance Method Summary collapse

Instance Method Details

#<=>(other) ⇒ Object

Compares two Result instances on their row keys



274
275
276
# File 'lib/hbase-jruby/row.rb', line 274

def <=> other
  Bytes.compareTo(rowkey(:raw), other.rowkey(:raw))
end

#[](*col) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/hbase-jruby/row.rb', line 31

def [] *col
  col = col.length == 1 ? col[0] : col
  cf, cq, type = @table.lookup_schema(col)
  if cf
    self.send type, [cf, cq]
  else
    self.raw col
  end
end

#bigdecimal(column) ⇒ BigDecimal

Returns column values as Bigdecimals

Returns the latest column value as a BigDecimal

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (BigDecimal)


220
221
222
# File 'lib/hbase-jruby/row.rb', line 220

def bigdecimal col
  decode_value :bigdecimal, col
end

#bigdecimals(column) ⇒ Hash<Fixnum, BigDecimal>

Returns all versions of column values as BigDecimals in a Hash indexed by their timestamps

Returns all versions of column values as BigDecimals in a Hash indexed by their timestamps

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Hash<Fixnum, BigDecimal>)


229
230
231
# File 'lib/hbase-jruby/row.rb', line 229

def bigdecimals col
  decode_value :bigdecimal, col, true
end

#boolean(column) ⇒ true, false Also known as: bool

Returns column values as Booleans

Returns the latest column value as a boolean value

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (true, false)


258
259
260
# File 'lib/hbase-jruby/row.rb', line 258

def boolean col
  decode_value :boolean, col
end

#booleans(column) ⇒ Hash<Fixnum, true|false> Also known as: bools

Returns all versions of column values as Booleans in a Hash indexed by their timestamps

Returns all versions of column values as boolean values in a Hash indexed by their timestamps

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Hash<Fixnum, true|false>)


268
269
270
# File 'lib/hbase-jruby/row.rb', line 268

def booleans col
  decode_value :boolean, col, true
end

#byte(column) ⇒ Fixnum

Returns 1-byte column values as Fixnums

Returns the latest column value as a Fixnum

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Fixnum)


146
147
148
# File 'lib/hbase-jruby/row.rb', line 146

def byte col
  decode_value :byte, col
end

#bytes(column) ⇒ Hash<Fixnum, Fixnum>

Returns all versions of 1-byte column values as Fixnums in a Hash indexed by their timestamps

Returns all versions of column values as Fixnums in a Hash indexed by their timestamps

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Hash<Fixnum, Fixnum>)


155
156
157
# File 'lib/hbase-jruby/row.rb', line 155

def bytes col
  decode_value :byte, col, true
end

#eachObject

Enumerates through cells



24
25
26
27
28
29
# File 'lib/hbase-jruby/row.rb', line 24

def each
  return enum_for(:each) unless block_given?
  @result.raw.each do |kv|
    yield Cell.new(@table, kv)
  end
end

#empty?Boolean

Returns if the returned row is empty

Returns:

  • (Boolean)


11
12
13
# File 'lib/hbase-jruby/row.rb', line 11

def empty?
  @result.empty?
end

#fixnum(column) ⇒ Fixnum Also known as: long

Returns 8-byte column values as Fixnums

Returns the latest 8-byte column value as a Fixnum

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Fixnum)


200
201
202
# File 'lib/hbase-jruby/row.rb', line 200

def fixnum col
  decode_value :fixnum, col
end

#fixnums(column) ⇒ Hash<Fixnum, Fixnum> Also known as: longs

Returns all versions of 8-byte column values as Fixnums in a Hash indexed by their timestamps

Returns all versions of 8-byte column values as Fixnums in a Hash indexed by their timestamps

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Hash<Fixnum, Fixnum>)


210
211
212
# File 'lib/hbase-jruby/row.rb', line 210

def fixnums col
  decode_value :fixnum, col, true
end

#float(column) ⇒ Float Also known as: double

Returns column values as Floats

Returns the latest column value as a Float

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Float)


238
239
240
# File 'lib/hbase-jruby/row.rb', line 238

def float col
  decode_value :float, col
end

#floats(column) ⇒ Hash<Fixnum, Float> Also known as: doubles

Returns all versions of column values as Floats in a Hash indexed by their timestamps

Returns all versions of column values as Floats in a Hash indexed by their timestamps

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Hash<Fixnum, Float>)


248
249
250
# File 'lib/hbase-jruby/row.rb', line 248

def floats col
  decode_value :float, col, true
end

#int(column) ⇒ Fixnum

Returns 4-byte column values as Fixnums

Returns the latest 4-byte column value as a Fixnum

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Fixnum)


182
183
184
# File 'lib/hbase-jruby/row.rb', line 182

def int col
  decode_value :int, col
end

#ints(column) ⇒ Hash<Fixnum, Fixnum>

Returns all versions of 4-byte column values as Fixnums in a Hash indexed by their timestamps

Returns all versions of 4-byte column values as Fixnums in a Hash indexed by their timestamps

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Hash<Fixnum, Fixnum>)


191
192
193
# File 'lib/hbase-jruby/row.rb', line 191

def ints col
  decode_value :int, col, true
end

#raw(column) ⇒ byte[]

Returns column values as byte arrays

Returns the latest column value as a byte array

Parameters:

  • col (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (byte[])

    Byte array representation of the latest value



88
89
90
# File 'lib/hbase-jruby/row.rb', line 88

def raw col
  get_value col
end

#raws(column) ⇒ Hash<Fixnum, byte[]>

Returns all versions of column values as byte arrays in a Hash indexed by their timestamps

Returns all versions of column values as byte arrays in a Hash indexed by their timestamps

Parameters:

  • col (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Hash<Fixnum, byte[]>)


97
98
99
# File 'lib/hbase-jruby/row.rb', line 97

def raws col
  get_value col, true
end

#rowkey(type = :raw) ⇒ String, byte[]

Returns the rowkey of the row

Parameters:

  • type (Symbol) (defaults to: :raw)

    The type of the rowkey Can be one of :string, :symbol, :fixnum, :float, :short, :int, :bigdecimal, :boolean and :raw.

Returns:



19
20
21
# File 'lib/hbase-jruby/row.rb', line 19

def rowkey type = :raw
  Util.from_bytes type, @result.getRow
end

#short(column) ⇒ Fixnum

Returns 2-byte column values as Fixnums

Returns the latest 2-byte column value as a Fixnum

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Fixnum)


164
165
166
# File 'lib/hbase-jruby/row.rb', line 164

def short col
  decode_value :short, col
end

#shorts(column) ⇒ Hash<Fixnum, Fixnum>

Returns all versions of 2-byte column values as Fixnums in a Hash indexed by their timestamps

Returns all versions of 2-byte column values as Fixnums in a Hash indexed by their timestamps

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Hash<Fixnum, Fixnum>)


173
174
175
# File 'lib/hbase-jruby/row.rb', line 173

def shorts col
  decode_value :short, col, true
end

#string(column) ⇒ String Also known as: str

Returns column values as Strings

Returns the latest column value as a String

Parameters:

  • col (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (String)


106
107
108
# File 'lib/hbase-jruby/row.rb', line 106

def string col
  decode_value :string, col
end

#strings(column) ⇒ Hash<Fixnum, String> Also known as: strs

Returns all versions of column values as Strings in a Hash indexed by their timestamps

Returns all versions of column values as Strings in a Hash indexed by their timestamps

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Hash<Fixnum, String>)


116
117
118
# File 'lib/hbase-jruby/row.rb', line 116

def strings col
  decode_value :string, col, true
end

#symbol(column) ⇒ Symbol Also known as: sym

Returns column values as Symbols

Returns the latest column value as a Symbol

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Symbol)


126
127
128
# File 'lib/hbase-jruby/row.rb', line 126

def symbol col
  decode_value :symbol, col
end

#symbols(column) ⇒ Hash<Fixnum, Symbol> Also known as: syms

Returns all versions of column values as Symbols in a Hash indexed by their timestamps

Returns all versions of column values as Symbols in a Hash indexed by their timestamps

Parameters:

  • column (String, Array)

    Column name as String or 2-element Array of family and qualifier

Returns:

  • (Hash<Fixnum, Symbol>)


136
137
138
# File 'lib/hbase-jruby/row.rb', line 136

def symbols col
  decode_value :symbol, col, true
end

#to_HHash Also known as: to_hash_with_versions

Returns:

  • (Hash)


61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/hbase-jruby/row.rb', line 61

def to_H
  HASH_TEMPLATE.clone.tap do |ret|
    @result.getMap.each do |cf, cqmap|
      cf = Util.from_bytes :string, cf
      cqmap.each do |cq, tsmap|
        cqs = Util.from_bytes(:string, cq) rescue nil
        f, q, t = @table.lookup_schema(cqs)
        t = nil if f != cf
        name = t ? q : [cf.to_sym, ByteArray[cq]]

        ret[name] =
          Hash[
            tsmap.map { |ts, val|
              [ ts, Util.from_bytes(t, val) ]
            }
          ]
      end
    end
  end
end

#to_hHash Also known as: to_hash

Only supports string column qualifiers

Returns:

  • (Hash)


43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/hbase-jruby/row.rb', line 43

def to_h
  HASH_TEMPLATE.clone.tap do |ret|
    @result.getNoVersionMap.each do |cf, cqmap|
      cf = Util.from_bytes :string, cf
      cqmap.each do |cq, val|
        cqs = Util.from_bytes(:string, cq) rescue nil
        f, q, t = @table.lookup_schema(cqs)
        t = nil if f != cf
        name = t ? q : [cf.to_sym, ByteArray[cq]]

        ret[name] = Util.from_bytes(t, val)
      end
    end
  end
end