当前位置: 首页>>代码示例>>Java>>正文


Java Schema.Type方法代码示例

本文整理汇总了Java中org.apache.avro.Schema.Type方法的典型用法代码示例。如果您正苦于以下问题:Java Schema.Type方法的具体用法?Java Schema.Type怎么用?Java Schema.Type使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.avro.Schema的用法示例。


在下文中一共展示了Schema.Type方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: get

import org.apache.avro.Schema; //导入方法依赖的package包/类
public static IParser get( final Object obj ) throws IOException{
  Schema.Type schemaType;
  try{
    schemaType = genericUtil.induce( obj ).getType();
  }catch( AvroTypeException e ){
    return new AvroNullParser();
  }

  switch( schemaType ){
    case ARRAY:
      return new AvroArrayParser( (GenericArray)obj );
    case MAP:
      return new AvroMapParser( (Map<Object,Object>)obj );
    case RECORD:
      return new AvroRecordParser( (GenericRecord)obj );
    case UNION :
    default:
      return new AvroNullParser();
  }
}
 
开发者ID:yahoojapan,项目名称:dataplatform-schema-lib,代码行数:21,代码来源:AvroObjectToParser.java

示例2: hasParser

import org.apache.avro.Schema; //导入方法依赖的package包/类
public static boolean hasParser( final Object obj ) throws IOException{
  Schema.Type schemaType;
  try{
    schemaType = genericUtil.induce( obj ).getType();
  }catch( AvroTypeException e ){
    return false;
  }

  switch( schemaType ){
    case ARRAY:
    case MAP:
    case RECORD:
      return true;
    case UNION :
    default:
      return false;
  }
}
 
开发者ID:yahoojapan,项目名称:dataplatform-schema-lib,代码行数:19,代码来源:AvroObjectToParser.java

示例3: createPrimitiveDiff

import org.apache.avro.Schema; //导入方法依赖的package包/类
public static PrimitiveDiff createPrimitiveDiff(Object avroObj1Field, Object avroObj2Field, Schema.Type fieldTypeAvroObj1, Schema.Type fieldTypeAvroObj2) throws IOException {
    PrimitiveDiff primitiveDiff = new PrimitiveDiff();
    byte[] avroObj1FieldBytes = null, avroObj2FieldBytes;

    if (fieldTypeAvroObj2.equals(fieldTypeAvroObj1) || fieldTypeAvroObj1 == null) {
        if (fieldTypeAvroObj2.equals(Schema.Type.BYTES) || fieldTypeAvroObj2.equals(Schema.Type.STRING)) {
            if (fieldTypeAvroObj2.equals(Schema.Type.BYTES)) {
                if (avroObj1Field != null) {
                    avroObj1FieldBytes = ((ByteBuffer) avroObj1Field).array();
                }
                avroObj2FieldBytes = ((ByteBuffer) avroObj2Field).array();
            } else {
                if (avroObj1Field != null) {
                    avroObj1FieldBytes = ((String) avroObj1Field).getBytes(StandardCharsets.UTF_8);
                }
                avroObj2FieldBytes = ((String) avroObj2Field).getBytes(StandardCharsets.UTF_8);
            }

            byte[] diff = avroObj1FieldBytes == null ? avroObj2FieldBytes : new Delta().compute(avroObj1FieldBytes, avroObj2FieldBytes);

            if (diff.length >= avroObj2FieldBytes.length) {
                primitiveDiff.setNewValue(avroObj2Field);
            } else {
                primitiveDiff.setDiffValue(ByteBuffer.wrap(diff));
            }
        } else {
            primitiveDiff.setNewValue(avroObj2Field);
        }
    } else {
        primitiveDiff.setNewValue(avroObj2Field);
    }

    return primitiveDiff;
}
 
开发者ID:atlascon,项目名称:avro-diff,代码行数:35,代码来源:AvroDiffPrimitive.java

示例4: resolveUnion

import org.apache.avro.Schema; //导入方法依赖的package包/类
@VisibleForTesting
UnionResolution resolveUnion(JsonNode datum, Collection<Schema> unionSchemas) {
  if (log.isDebugEnabled()) {
    log.debug("Resolving union of types: {}",
        unionSchemas.stream().map(Schema::getName).collect(Collectors.joining(",")));
  }
  Set<Schema.Type> primitives = Sets.newHashSet();
  List<Schema> others = Lists.newArrayList();
  for (Schema unionBranchSchema : unionSchemas) {
    if (PRIMITIVES.containsKey(unionBranchSchema.getType())) {
      primitives.add(unionBranchSchema.getType());
    } else {
      others.add(unionBranchSchema);
    }
  }

  UnionResolution primitiveMatch = identifyPrimitiveMatch(datum, primitives);
  if (primitiveMatch != null) {
    return primitiveMatch;
  }

  UnionResolution otherMatch = identifyOtherMatch(datum, others);
  if (otherMatch != null) {
    return otherMatch;
  }

  return UnionResolution.NONE;
}
 
开发者ID:HotelsDotCom,项目名称:jasvorno,代码行数:29,代码来源:JasvornoConverter.java

示例5: identifyPrimitiveMatch

import org.apache.avro.Schema; //导入方法依赖的package包/类
private static UnionResolution identifyPrimitiveMatch(JsonNode datum, Set<Schema.Type> primitives) {
  // Try to identify specific primitive types
  Schema primitiveSchema = null;
  if (datum == null || datum.isNull()) {
    primitiveSchema = closestPrimitive(primitives, Schema.Type.NULL);
  } else if (datum.isShort() || datum.isInt()) {
    primitiveSchema = closestPrimitive(primitives, Schema.Type.INT, Schema.Type.LONG, Schema.Type.FLOAT,
        Schema.Type.DOUBLE);
  } else if (datum.isLong()) {
    primitiveSchema = closestPrimitive(primitives, Schema.Type.LONG, Schema.Type.DOUBLE);
  } else if (datum.isFloat()) {
    primitiveSchema = closestPrimitive(primitives, Schema.Type.FLOAT, Schema.Type.DOUBLE);
  } else if (datum.isDouble()) {
    primitiveSchema = closestPrimitive(primitives, Schema.Type.DOUBLE);
  } else if (datum.isBoolean()) {
    primitiveSchema = closestPrimitive(primitives, Schema.Type.BOOLEAN);
  }
  if (primitiveSchema == null
      && ((datum.isDouble() && datum.doubleValue() >= -Float.MAX_VALUE && datum.doubleValue() <= Float.MAX_VALUE)
          || (datum.isLong()
              && datum.longValue() >= (long) -Float.MAX_VALUE
              && datum.longValue() <= (long) Float.MAX_VALUE))) {
    primitiveSchema = closestPrimitive(primitives, Schema.Type.FLOAT, Schema.Type.DOUBLE);
  }

  if (primitiveSchema != null) {
    return new UnionResolution(primitiveSchema, MatchType.FULL);
  }
  return null;
}
 
开发者ID:HotelsDotCom,项目名称:jasvorno,代码行数:31,代码来源:JasvornoConverter.java

示例6: closestPrimitive

import org.apache.avro.Schema; //导入方法依赖的package包/类
private static Schema closestPrimitive(Set<Schema.Type> possible, Schema.Type... types) {
  for (Schema.Type type : types) {
    if (possible.contains(type) && PRIMITIVES.containsKey(type)) {
      return PRIMITIVES.get(type);
    }
  }
  return null;
}
 
开发者ID:HotelsDotCom,项目名称:jasvorno,代码行数:9,代码来源:JasvornoConverter.java

示例7: processRecord

import org.apache.avro.Schema; //导入方法依赖的package包/类
private void processRecord(final GenericContainer container, final Schema schema) {

    final Schema.Type type = schema.getType();

    switch (type) {
      case RECORD:
        process(container, schema, null, new MapOrListWriter(writer.rootAsMap()));
        break;
      default:
        throw new DrillRuntimeException("Root object must be record type. Found: " + type);
    }
  }
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:13,代码来源:AvroRecordReader.java

示例8: get

import org.apache.avro.Schema; //导入方法依赖的package包/类
public static Object get( final Schema.Type schemaType , final PrimitiveObject obj ) throws IOException{
  if( schemaType == Schema.Type.BOOLEAN ){
    return obj.getBoolean();
  }
  else if( schemaType == Schema.Type.BYTES ){
    byte[] bytes = obj.getBytes();
    ByteBuffer byteBuffer = ByteBuffer.allocate(bytes.length);
    byteBuffer.put(bytes, 0, bytes.length);
    return byteBuffer;
  }
  else if( schemaType == Schema.Type.DOUBLE ){
    return obj.getDouble();
  }
  else if( schemaType == Schema.Type.FLOAT ){
    return obj.getFloat();
  }
  else if( schemaType == Schema.Type.INT ){
    return obj.getInt();
  }
  else if( schemaType == Schema.Type.LONG ){
    return obj.getLong();
  }
  else if( schemaType == Schema.Type.STRING ){
    return obj.getString();
  }
  else if( schemaType == Schema.Type.NULL ){
    return null;
  }
  else{
    return obj.getString();
  }
}
 
开发者ID:yahoojapan,项目名称:dataplatform-schema-lib,代码行数:33,代码来源:PrimitiveObjectToAvroObject.java

示例9: get

import org.apache.avro.Schema; //导入方法依赖的package包/类
public static PrimitiveObject get( final Object obj ) throws IOException{
  Schema.Type schemaType = null;
  try{
    schemaType = genericUtil.induce( obj ).getType();
  }catch( AvroTypeException e ){
    return new StringObj( obj.toString() );
  }

  if( schemaType == Schema.Type.BOOLEAN ){
    return new BooleanObj( (Boolean)obj );
  }
  else if( schemaType == Schema.Type.BYTES ){
    return new BytesObj( ((ByteBuffer)obj).array() );
  }
  else if( schemaType == Schema.Type.DOUBLE ){
    return new DoubleObj( (Double)obj );
  }
  else if( schemaType == Schema.Type.FLOAT ){
    return new FloatObj( (Float)obj );
  }
  else if( schemaType == Schema.Type.INT ){
    return new IntegerObj( (Integer)obj );
  }
  else if( schemaType == Schema.Type.LONG ){
    return new LongObj( (Long)obj );
  }
  else if( schemaType == Schema.Type.STRING ){
    return new StringObj( obj.toString() );
  }
  else if( schemaType == Schema.Type.NULL ){
    return NullObj.getInstance();
  }
  else{
    return new StringObj( obj.toString() );
  }
}
 
开发者ID:yahoojapan,项目名称:dataplatform-schema-lib,代码行数:37,代码来源:AvroObjectToPrimitiveObject.java

示例10: processRecord

import org.apache.avro.Schema; //导入方法依赖的package包/类
private void processRecord(final GenericContainer container, final Schema schema) {

    final Schema.Type type = schema.getType();

    switch (type) {
      case RECORD:
        process(container, schema, null, new MapOrListWriterImpl(writer.rootAsMap()), fieldSelection);
        break;
      default:
        throw new RuntimeException("Root object must be record type. Found: " + type);
    }
  }
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:13,代码来源:AvroRecordReader.java

示例11: get

import org.apache.avro.Schema; //导入方法依赖的package包/类
public static IAvroFormatter get( final Schema avroSchema ){
  Schema.Type schemaType = avroSchema.getType();

  if( schemaType == Schema.Type.ARRAY ){
    return new AvroArrayFormatter( avroSchema );
  }
  else if( schemaType == Schema.Type.MAP ){
    return new AvroMapFormatter( avroSchema );
  }
  else if( schemaType == Schema.Type.RECORD ){
    return new AvroRecordFormatter( avroSchema );
  }
  else if( schemaType == Schema.Type.UNION ){
    return new AvroUnionFormatter( avroSchema );
  }
  else if( schemaType == Schema.Type.BOOLEAN ){
    return new AvroBooleanFormatter();
  }
  else if( schemaType == Schema.Type.BYTES ){
    return new AvroBytesFormatter();
  }
  else if( schemaType == Schema.Type.DOUBLE ){
    return new AvroDoubleFormatter();
  }
  else if( schemaType == Schema.Type.FLOAT ){
    return new AvroFloatFormatter();
  }
  else if( schemaType == Schema.Type.INT ){
    return new AvroIntegerFormatter();
  }
  else if( schemaType == Schema.Type.LONG ){
    return new AvroLongFormatter();
  }
  else if( schemaType == Schema.Type.STRING ){
    return new AvroStringFormatter();
  }
  else if( schemaType == Schema.Type.NULL ){
    return new AvroNullFormatter();
  }
  else{
    return new AvroNullFormatter();
  }
}
 
开发者ID:yahoojapan,项目名称:dataplatform-schema-lib,代码行数:44,代码来源:AvroFormatterFactory.java

示例12: getGeneralSchema

import org.apache.avro.Schema; //导入方法依赖的package包/类
public static IField getGeneralSchema( final String fieldName , final Schema avroSchema ) throws IOException{
  Schema.Type schemaType = avroSchema.getType();

  if( schemaType == Schema.Type.ARRAY ){
    return new AvroArraySchema( fieldName, avroSchema ).getGeneralSchema();
  }
  else if( schemaType == Schema.Type.MAP ){
    return new AvroMapSchema( fieldName, avroSchema ).getGeneralSchema();
  }
  else if( schemaType == Schema.Type.RECORD ){
    return new AvroRecordSchema( avroSchema ).getGeneralSchema();
  }
  else if( schemaType == Schema.Type.UNION ){
    List<Schema> childSchemas = avroSchema.getTypes();
    if( childSchemas.size() == 2 ){
      Schema childSchema0 = childSchemas.get(0);
      Schema childSchema1 = childSchemas.get(1);
      if( childSchema0.getType() == Schema.Type.NULL && childSchema1.getType() != Schema.Type.NULL ){
        return getGeneralSchema( fieldName , childSchema1 );
      }
      else if( childSchema0.getType() != Schema.Type.NULL && childSchema1.getType() == Schema.Type.NULL ){
        return getGeneralSchema( fieldName , childSchema0 );
      }
    }
    return new AvroUnionSchema( avroSchema ).getGeneralSchema();
  }
  else if( schemaType == Schema.Type.BOOLEAN ){
    return new BooleanField( fieldName );
  }
  else if( schemaType == Schema.Type.BYTES ){
    return new BytesField( fieldName );
  }
  else if( schemaType == Schema.Type.DOUBLE ){
    return new DoubleField( fieldName );
  }
  else if( schemaType == Schema.Type.FLOAT ){
    return new FloatField( fieldName );
  }
  else if( schemaType == Schema.Type.INT ){
    return new IntegerField( fieldName );
  }
  else if( schemaType == Schema.Type.LONG ){
    return new LongField( fieldName );
  }
  else if( schemaType == Schema.Type.STRING ){
    return new StringField( fieldName );
  }
  else if( schemaType == Schema.Type.NULL ){
    return new NullField( fieldName );
  }
  else{
    return new NullField( fieldName );
  }
}
 
开发者ID:yahoojapan,项目名称:dataplatform-schema-lib,代码行数:55,代码来源:AvroSchemaFactory.java

示例13: buildField

import org.apache.avro.Schema; //导入方法依赖的package包/类
private Field buildField(String name, Schema.Type type) {
  return new Field(name, Schema.create(type), null, null);
}
 
开发者ID:aliyun,项目名称:aliyun-maxcompute-data-collectors,代码行数:4,代码来源:TestParquetExport.java

示例14: buildAvroField

import org.apache.avro.Schema; //导入方法依赖的package包/类
private Field buildAvroField(String name, Schema.Type type) {
  return new Field(name, Schema.create(type), null, null);
}
 
开发者ID:aliyun,项目名称:aliyun-maxcompute-data-collectors,代码行数:4,代码来源:TestAvroExport.java

示例15: detectConverter

import org.apache.avro.Schema; //导入方法依赖的package包/类
static private AbstractAvroValueConverter detectConverter(Schema schema) {
    Schema.Type avroType = schema.getType();
    switch (avroType) {
        case NULL:
            return new AvroNullConverter(schema);
        case BOOLEAN:
            return new AvroBooleanConverter(schema);
        case STRING:
            return new AvroStringConverter(schema);
        case INT:
            return new AvroIntConverter(schema);
        case LONG:
            return new AvroLongConverter(schema);
        case FLOAT:
            return new AvroFloatConverter(schema);
        case DOUBLE:
            return new AvroDoubleConverter(schema);
        case ENUM:
            return new AvroEnumConverter(schema, schema.getEnumSymbols());
        case FIXED:
            return new AvroFixedConverter(schema);
        case UNION:
            for (Schema s : schema.getTypes()) {
                if (s.getType() != Schema.Type.NULL)
                    return detectConverter(s);
            }
            return new AvroNullConverter(schema);
        case ARRAY:
            return new AvroArrayConverter(schema, detectConverter(schema.getElementType()));
        case MAP:
            return new AvroMapConverter(schema, detectConverter(schema.getValueType()));
        case RECORD:
            ImmutableMap.Builder<String, AbstractAvroValueConverter> builder = ImmutableMap.builder();
            for (Schema.Field f : schema.getFields()) {
                builder.put(f.name(), detectConverter(f.schema()));
            }
            return new AvroRecordConverter(schema, builder.build());
        default:
            throw new RuntimeException(String.format("%s of %s is unsupported avro type", schema.getType(), schema.getName()));
    }
}
 
开发者ID:joker1007,项目名称:embulk-formatter-avro,代码行数:42,代码来源:AvroValueConverterFactory.java


注:本文中的org.apache.avro.Schema.Type方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。