Package org.apache.hadoop.hive.serde2.objectinspector

Examples of org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector


            getTypeInfoFromObjectInspector(moi.getMapKeyObjectInspector()),
            getTypeInfoFromObjectInspector(moi.getMapValueObjectInspector()));
        break;
      }
      case STRUCT: {
        StructObjectInspector soi = (StructObjectInspector)oi;
        List<? extends StructField> fields = soi.getAllStructFieldRefs();
        List<String> fieldNames = new ArrayList<String>(fields.size());
        List<TypeInfo> fieldTypeInfos = new ArrayList<TypeInfo>(fields.size());
        for(StructField f : fields) {
          fieldNames.add(f.getFieldName());
          fieldTypeInfos.add(getTypeInfoFromObjectInspector(f.getFieldObjectInspector()));
View Full Code Here


    if (objInspector.getCategory() != Category.STRUCT) {
      throw new SerDeException(getClass().toString()
          + " can only serialize struct types, but we got: " + objInspector.getTypeName());
    }
    StructObjectInspector soi = (StructObjectInspector) objInspector;
    List<? extends StructField> fields = soi.getAllStructFieldRefs();
   
    StringBuilder sb = new StringBuilder();
    for(int i=0; i<fields.size(); i++) {
      if (i>0) sb.append(separator);
      Object column = soi.getStructFieldData(obj, fields.get(i));
      if (fields.get(i).getFieldObjectInspector().getCategory() == Category.PRIMITIVE) {
        // For primitive object, serialize to plain string
        sb.append(column == null ? nullString : column.toString());
      } else {
        // For complex object, serialize to JSON format
View Full Code Here

          sb.append(RBRACE);
        }
        break;
      }
      case STRUCT: {
        StructObjectInspector soi = (StructObjectInspector)oi;
        List<? extends StructField> structFields = soi.getAllStructFieldRefs();
        if (structFields == null) {
          sb.append("null");
        } else {
          sb.append(LBRACE);
          for(int i=0; i<structFields.size(); i++) {
            if (i>0) {
              sb.append(COMMA);
            }
            sb.append(QUOTE);
            sb.append(structFields.get(i).getFieldName());
            sb.append(QUOTE);
            sb.append(COLON);
            buildJSONString(sb, soi.getStructFieldData(o, structFields.get(i)),
                structFields.get(i).getFieldObjectInspector());         
          }
          sb.append(RBRACE);
        }
        break;
View Full Code Here

  TField field = new TField();
  public void serialize(Object o, ObjectInspector oi, TProtocol oprot) throws TException, SerDeException, NoSuchFieldException,IllegalAccessException  {
    // Assuming the ObjectInspector represents exactly the same type as this struct.
    // This assumption should be checked during query compile time.
    assert(oi instanceof StructObjectInspector);
    StructObjectInspector soi = (StructObjectInspector) oi;

    boolean writeNulls = oprot instanceof org.apache.hadoop.hive.serde2.thrift.WriteNullsProtocol;
   
    // For every field
    List<? extends StructField> fields = soi.getAllStructFieldRefs();
    if (fields.size() != ordered_types.length) {
      throw new SerDeException("Trying to serialize " + fields.size()
          + " fields into a struct with " + ordered_types.length
          + " object=" + o + " objectinspector=" + oi.getTypeName());
    }
    for (int i=0; i<fields.size(); i++) {
      Object f = soi.getStructFieldData(o, fields.get(i));
      DynamicSerDeTypeBase mt = ordered_types[i];
     
      if (f == null && !writeNulls) {
        continue;
      }
View Full Code Here

          + objInspector.getTypeName());
    }

    StringBuilder sb = new StringBuilder();

    StructObjectInspector soi = (StructObjectInspector)objInspector;
    List<? extends StructField> fields = soi.getAllStructFieldRefs();
    List<Object> list = soi.getStructFieldsDataAsList(obj);
    List<? extends StructField> declaredFields =
        (rowTypeInfo != null && rowTypeInfo.getAllStructFieldNames().size()>0)
        ? ((StructObjectInspector)getObjectInspector()).getAllStructFieldRefs()
        : null;
       
View Full Code Here

        }
        return;
      }
      case STRUCT: {
        char separator = (char)separators[level];
        StructObjectInspector soi = (StructObjectInspector)objInspector;
        List<? extends StructField> fields = soi.getAllStructFieldRefs();
        List<Object> list = soi.getStructFieldsDataAsList(obj);
        if (list == null) {
          sb.append(nullString);
        } else {
          for (int i=0; i<list.size(); i++) {
            if (i>0) {
View Full Code Here

  }

  private void deserializeAndSerialize(LazySimpleSerDe serDe, Text t, String s,
      Object[] expectedFieldsData) throws SerDeException {
    // Get the row structure
    StructObjectInspector oi = (StructObjectInspector)serDe.getObjectInspector();
    List<? extends StructField> fieldRefs = oi.getAllStructFieldRefs();
    assertEquals(8, fieldRefs.size());
   
    // Deserialize
    Object row = serDe.deserialize(t);
    for (int i = 0; i < fieldRefs.size(); i++) {
      Object fieldData = oi.getStructFieldData(row, fieldRefs.get(i));
      assertEquals("Field " + i, fieldData, expectedFieldsData[i]);
    }
    // Serialize
    assertEquals(Text.class, serDe.getSerializedClass());
    Text serializedText = (Text)serDe.serialize(row, oi);
View Full Code Here

    Vector<StructField> fields = new Vector<StructField> ();
    try {
      Deserializer decoder = getDeserializer();

      // Expand out all the columns of the table
      StructObjectInspector structObjectInspector = (StructObjectInspector)decoder.getObjectInspector();
      List<? extends StructField> fld_lst = structObjectInspector.getAllStructFieldRefs();
      for(StructField field: fld_lst) {
        fields.add(field);
      }
    } catch (SerDeException e) {
      throw new RuntimeException(e);
View Full Code Here

    return fields;
  }

  public StructField getField(String fld) {
    try {
      StructObjectInspector structObjectInspector = (StructObjectInspector)getDeserializer().getObjectInspector();
      return structObjectInspector.getStructFieldRef(fld);
    }
    catch (Exception e) {
      throw new RuntimeException(e);
    }
  }
View Full Code Here

    String[] names = tableName.split("\\.");
    String last_name = names[names.length - 1];
    for (int i = 1; i < names.length; i++) {

      if (oi instanceof StructObjectInspector) {
        StructObjectInspector soi = (StructObjectInspector) oi;
        StructField sf = soi.getStructFieldRef(names[i]);
        if (sf == null) {
          throw new MetaException("Invalid Field " + names[i]);
        } else {
          oi = sf.getFieldObjectInspector();
        }
View Full Code Here

TOP

Related Classes of org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.