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


Java TypeDescription.createStruct方法代码示例

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


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

示例1: convertSchema

import org.apache.orc.TypeDescription; //导入方法依赖的package包/类
public static TypeDescription convertSchema(Schema schema) {
  TypeDescription description = TypeDescription.createStruct();

  for (Column eachColumn : schema.getRootColumns()) {
    description.addField(eachColumn.getQualifiedName(),
        convertTypeInfo(eachColumn.getTypeDesc()));
  }
  return description;
}
 
开发者ID:apache,项目名称:tajo,代码行数:10,代码来源:OrcUtils.java

示例2: convertTypeInfo

import org.apache.orc.TypeDescription; //导入方法依赖的package包/类
public static TypeDescription convertTypeInfo(TypeDesc desc) {
  switch (desc.getDataType().getType()) {
    case BOOLEAN:
      return TypeDescription.createBoolean();
    case BIT:
      return TypeDescription.createByte();
    case INT2:
      return TypeDescription.createShort();
    case INT4:
      return TypeDescription.createInt();
    case INT8:
      return TypeDescription.createLong();
    case FLOAT4:
      return TypeDescription.createFloat();
    case FLOAT8:
      return TypeDescription.createDouble();
    case TEXT:
      return TypeDescription.createString();
    case DATE:
      return TypeDescription.createDate();
    case TIMESTAMP:
      return TypeDescription.createTimestamp();
    case BLOB:
      return TypeDescription.createBinary();
    case CHAR:
      return TypeDescription.createChar()
          .withMaxLength(desc.getDataType().getLength());
    case RECORD: {
      TypeDescription result = TypeDescription.createStruct();
      for (Column eachColumn : desc.getNestedSchema().getRootColumns()) {
        result.addField(eachColumn.getQualifiedName(),
            convertTypeInfo(eachColumn.getTypeDesc()));
      }
      return result;
    }
    default:
      throw new TajoRuntimeException(new UnsupportedDataTypeException(desc.getDataType().getType().name()));
  }
}
 
开发者ID:apache,项目名称:tajo,代码行数:40,代码来源:OrcUtils.java

示例3: flushData

import org.apache.orc.TypeDescription; //导入方法依赖的package包/类
@Override
boolean flushData(BufferSegment segment)
{
    System.out.println("Orc file flush out!!!");
    String topic = segment.getFiberPartitions().get(0).getTopic();
    int indexOfDot = topic.indexOf(".");
    String dbName = topic.substring(0, indexOfDot);
    int length = topic.length();
    String tblName = topic.substring(indexOfDot + 1, length);

    long beginTime = segment.getTimestamps()[0];
    long endTime = segment.getTimestamps()[0];
    for (long timeStamp : segment.getTimestamps()) {
        if (timeStamp < beginTime) {
            beginTime = timeStamp;
        }
        if (timeStamp > endTime) {
            endTime = timeStamp;
        }
    }
    String path = FileNameGenerator.generator(dbName, tblName, beginTime, endTime);

    MetaProto.StringListType columnsNameList = metaClient.listColumns(dbName, tblName);
    MetaProto.StringListType columnDataTypeList = metaClient.listColumnsDataType(dbName, tblName);
    int columnNameCount = columnsNameList.getStrCount();
    int columnDataTypeCount = columnDataTypeList.getStrCount();
    System.out.println("columnNameCount: " + columnNameCount);
    System.out.println("columnDataTypeCount: " + columnDataTypeCount);

    TypeDescription schema = TypeDescription.createStruct();
    if (columnNameCount == columnDataTypeCount) {
        for (int i = 0; i < columnNameCount; i++) {
            switch (columnDataTypeList.getStr(i)) {
                case "bigint":
                    System.out.println("bigint");
                    schema.addField(columnsNameList.getStr(i), TypeDescription.createLong());
                    break;
                case "int":
                    System.out.println("int");
                    schema.addField(columnsNameList.getStr(i), TypeDescription.createInt());
                    break;
                case "boolean":
                    System.out.println("boolean");
                    schema.addField(columnsNameList.getStr(i), TypeDescription.createBoolean());
                    break;
                case "float4":
                    System.out.println("float4");
                    schema.addField(columnsNameList.getStr(i), TypeDescription.createFloat());
                    break;
                case "float8":
                    System.out.println("float8");
                    schema.addField(columnsNameList.getStr(i), TypeDescription.createDouble());
                    break;
                case "timestamptz":
                    System.out.println("timestamptz");
                    schema.addField(columnsNameList.getStr(i), TypeDescription.createTimestamp());
                    break;
                case "real":
                    System.out.println("real");
                    schema.addField(columnsNameList.getStr(i), TypeDescription.createFloat());
                    break;
                default:
                    System.out.println("default");
                    schema.addField(columnsNameList.getStr(i), TypeDescription.createString());
                    break;
            }
        }
    }

    return flush(segment, path, schema);
}
 
开发者ID:dbiir,项目名称:paraflow,代码行数:72,代码来源:OrcFlushThread.java

示例4: buildTypeDescription

import org.apache.orc.TypeDescription; //导入方法依赖的package包/类
public TypeDescription buildTypeDescription( SchemaDescription schemaDescription ) {
  TypeDescription typeDescription = TypeDescription.createStruct();
  schemaDescription.forEach( f -> addStructField( typeDescription, f ) );
  return typeDescription;
}
 
开发者ID:pentaho,项目名称:pentaho-hadoop-shims,代码行数:6,代码来源:OrcSchemaConverter.java


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