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

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


                 ((StringColumnStatistics) stats[2]).getNumberOfValues());
    assertEquals("count: 20000 min: a max: b",
        stats[2].toString());

    // check the inspectors
    StructObjectInspector readerInspector =
        (StructObjectInspector) reader.getObjectInspector();
    assertEquals(ObjectInspector.Category.STRUCT,
        readerInspector.getCategory());
    assertEquals("struct<a:int,b:string,c:boolean,list:array<struct<z:int>>>",
        readerInspector.getTypeName());

    RecordReader rows = reader.rows(null);

    // none of the stripes will have PRESENT stream
    List<Boolean> expected = Lists.newArrayList();
View Full Code Here


    assertEquals(7, ((StringColumnStatistics) stats[2]).getNumberOfValues());
    assertEquals("count: 7 min: a max: h",
        stats[2].toString());

    // check the inspectors
    StructObjectInspector readerInspector =
        (StructObjectInspector) reader.getObjectInspector();
    assertEquals(ObjectInspector.Category.STRUCT,
        readerInspector.getCategory());
    assertEquals("struct<a:int,b:string,c:boolean,list:array<struct<z:int>>>",
        readerInspector.getTypeName());

    RecordReader rows = reader.rows(null);
    // only the last strip will have PRESENT stream
    List<Boolean> expected = Lists.newArrayList();
    for (StripeInformation sinfo : reader.getStripes()) {
View Full Code Here

  }
 
  private void makeOrcStruct() {
    try {
      Object row = serde.deserialize(blob);
      StructObjectInspector rowOi = (StructObjectInspector) serde.getObjectInspector();
      orc = (OrcStruct) OrcUtils.convert(row, rowOi, oi);
    } catch (SerDeException e) {
      throw new CrunchRuntimeException("Unable to deserialize blob: " + blob);
    }
  }
View Full Code Here

 
  @Test
  public void testDeepCopy() {
    String typeStr = "struct<a:int,b:string,c:float>";
    TypeInfo info = TypeInfoUtils.getTypeInfoFromTypeString(typeStr);
    StructObjectInspector oi = (StructObjectInspector) OrcStruct.createObjectInspector(info);
    BinarySortableSerDe serde = OrcUtils.createBinarySerde(info);
   
    OrcStruct struct = OrcUtils.createOrcStruct(info,
        new IntWritable(1), new Text("Alice"), new FloatWritable(165.3f));
    OrcWritable writable = new OrcWritable();
    writable.set(struct);
    assertTrue(struct == writable.get());
   
    writable.setObjectInspector(oi);
    writable.setSerde(serde);
   
    WritableDeepCopier<OrcWritable> deepCopier = new WritableDeepCopier<OrcWritable>(OrcWritable.class);
    OrcWritable copied = deepCopier.deepCopy(writable);
    assertTrue(writable != copied);
    assertEquals(writable, copied);
   
    copied.setObjectInspector(oi);
    copied.setSerde(serde);
    OrcStruct copiedStruct = copied.get();
    assertTrue(struct != copiedStruct);
    assertEquals(struct, copiedStruct);
   
    List<Object> items = oi.getStructFieldsDataAsList(struct);
    List<Object> copiedItems = oi.getStructFieldsDataAsList(copiedStruct);
    for (int i = 0; i < items.size(); i++) {
      assertTrue(items.get(i) != copiedItems.get(i));
      assertEquals(items.get(i), copiedItems.get(i));
    }
   
    OrcWritable copied2 = deepCopier.deepCopy(copied);
    assertTrue(copied2 != copied);
    assertEquals(copied2, copied);
   
    copied2.setObjectInspector(oi);
    copied2.setSerde(serde);
    OrcStruct copiedStruct2 = copied2.get();
    assertTrue(copiedStruct2 != copiedStruct);
    assertEquals(copiedStruct2, copiedStruct);
   
    List<Object> copiedItems2 = oi.getStructFieldsDataAsList(copiedStruct2);
    for (int i = 0; i < items.size(); i++) {
      assertTrue(copiedItems2.get(i) != copiedItems.get(i));
      assertEquals(copiedItems2.get(i), copiedItems.get(i));
    }
  }
View Full Code Here

 
  @Test
  public void testCompareTo() {
    String typeStr = "struct<a:int,b:string,c:float>";
    TypeInfo info = TypeInfoUtils.getTypeInfoFromTypeString(typeStr);
    StructObjectInspector oi = (StructObjectInspector) OrcStruct.createObjectInspector(info);
    BinarySortableSerDe serde = OrcUtils.createBinarySerde(info);
   
    OrcStruct struct1 = OrcUtils.createOrcStruct(info, new IntWritable(1), new Text("AAA"), new FloatWritable(3.2f));
    OrcStruct struct2 = OrcUtils.createOrcStruct(info, new IntWritable(1), new Text("AAB"), null);
    OrcStruct struct3 = OrcUtils.createOrcStruct(info, new IntWritable(2), new Text("AAA"), null);
View Full Code Here

  public void testColumnPruning() throws IOException {
    Path path = new Path(tempPath, "test.orc");
   
    String typeStr = "struct<a:int,b:string,c:float>";
    TypeInfo info = TypeInfoUtils.getTypeInfoFromTypeString(typeStr);
    StructObjectInspector soi = (StructObjectInspector) OrcStruct.createObjectInspector(info);
    PType<OrcStruct> ptype = Orcs.orcs(info);
   
    OrcFileWriter<OrcStruct> writer = new OrcFileWriter<OrcStruct>(conf, path, ptype);
    writer.write(OrcUtils.createOrcStruct(info, new IntWritable(1), new Text("Alice"), new FloatWritable(167.2f)));
    writer.write(OrcUtils.createOrcStruct(info, new IntWritable(2), new Text("Bob"), new FloatWritable(179.7f)));
    writer.close();
   
    int[] readColumns = {1};
    OrcFileSource<OrcStruct> source = new OrcFileSource<OrcStruct>(path, ptype, readColumns);
    for (OrcStruct row : source.read(conf)) {
      List<Object> list = soi.getStructFieldsDataAsList(row);
      assertNull(list.get(0));
      assertNotNull(list.get(1));
      assertNull(list.get(2));
    }
  }
View Full Code Here

      default:
        throw new IllegalArgumentException("Unknown primitive type "
            + (fromPoi).getPrimitiveCategory());
      }
    case STRUCT:
      StructObjectInspector fromSoi = (StructObjectInspector) fromOi;
      List<StructField> fromFields = (List<StructField>) fromSoi.getAllStructFieldRefs();
      List<Object> fromItems = fromSoi.getStructFieldsDataAsList(from);
     
      // this is a tuple. use TupleObjectInspector to construct the result
      if (toOi instanceof TupleObjectInspector) {
        TupleObjectInspector toToi = (TupleObjectInspector) toOi;
        List<StructField> toFields = (List<StructField>) toToi.getAllStructFieldRefs();
View Full Code Here

            generator.writeEndObject();

            break;

        case STRUCT:
            StructObjectInspector soi = (StructObjectInspector) oi;

            List<? extends StructField> refs = soi.getAllStructFieldRefs();

            generator.writeBeginObject();
            for (StructField structField : refs) {
                generator.writeFieldName(alias.toES(structField.getFieldName()));
                if (!write(soi.getStructFieldData(data, structField), structField.getFieldObjectInspector(), generator)) {
                    return false;
                }
            }
            generator.writeEndObject();
            break;
View Full Code Here

    protected Object extractField(Object target) {
        if (target instanceof HiveType) {
            HiveType type = (HiveType) target;
            ObjectInspector inspector = type.getObjectInspector();
            if (inspector instanceof StructObjectInspector) {
                StructObjectInspector soi = (StructObjectInspector) inspector;
                StructField field = soi.getStructFieldRef(fieldName);
                ObjectInspector foi = field.getFieldObjectInspector();
                Assert.isTrue(foi.getCategory() == ObjectInspector.Category.PRIMITIVE,
                        String.format("Field [%s] needs to be a primitive; found [%s]", fieldName, foi.getTypeName()));

                // expecting a writeable - simply do a toString
                Object data = soi.getStructFieldData(type.getObject(), field);
                if (data == null || data instanceof NullWritable) {
                    return StringUtils.EMPTY;
                }
                return data.toString();
            }
View Full Code Here

        ObjectInspector oi = ht.getObjectInspector();

        Assert.isTrue(Category.STRUCT == oi.getCategory(),
                String.format("Unexpected object category, expecting [%s], given [%s]", Category.STRUCT, oi.getTypeName()));

        StructObjectInspector soi = (StructObjectInspector) oi;
        List<? extends StructField> refs = soi.getAllStructFieldRefs();
        Assert.isTrue(refs.size() == 1, "When using JSON input, only one field is expected");

        StructField structField = refs.get(0);
        ObjectInspector foi = structField.getFieldObjectInspector();

        Assert.isTrue(Category.PRIMITIVE == foi.getCategory(),
                String.format("Unexpected object category, expecting [%s], given [%s]", Category.PRIMITIVE, oi.getTypeName()));

        Object writable = ((PrimitiveObjectInspector) foi).getPrimitiveWritableObject(soi.getStructFieldData(ht.getObject(), structField));

        // HiveVarcharWritable - Hive 0.12+
        if (writable != null && HiveConstants.VARCHAR_WRITABLE.equals(writable.getClass().getName())) {
            // TODO: add dedicated optimization
            to.bytes(writable.toString());
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.