Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-3868

Use Hive‘s serde to parse HBase’s byte Data in LazyHBaseRow

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 0.9.0
    • Fix Version/s: None
    • Component/s: HBase Handler
    • Labels:
      None

      Description

      In LazyHBaseRow,

        private Object uncheckedGetField(int fieldID) {
                // it is a column i.e. a column-family with column-qualifier
                byte [] res = result.getValue(colMap.familyNameBytes, colMap.qualifierNameBytes);
      
                if (res == null) {
                  return null;
                } else {
                  ref = new ByteArrayRef();
                  ref.setData(res);
                }
            if (ref != null) {
              fields[fieldID].init(ref, 0, ref.getData().length);
            }
        }
        For example, if the fields[fieldID] is Bigint, and ref stores HBase byte data (Long), 
        it will use LazyLong to parse this data and will return NULL value, 
        it should use Bytes.toLong(res.getData()) to parse this byte data
      

        Activity

        Hide
        aoxiang binlijin added a comment -

        The reason is:
        We use HBase's Bytes to convert long and other data type to byte data and store in hbase.
        Then use hive to analysis the data in hbase.

        Show
        aoxiang binlijin added a comment - The reason is: We use HBase's Bytes to convert long and other data type to byte data and store in hbase. Then use hive to analysis the data in hbase.

          People

          • Assignee:
            Unassigned
            Reporter:
            aoxiang binlijin
          • Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:

              Development