java create array_Java Schema.createArray方法代码示例

import org.apache.avro.Schema; //导入方法依赖的package包/类

private Schema getComplexTypeDesc(DataType type) {

Schema resultTypeInfo = null;

switch (type.getCategory()) {

case Basic:

resultTypeInfo = parquetAvroSchemaMap.get(type.toString());

break;

case Struct:

// create record here

StructType structObjectType = (StructType) type;

List dataTypes = Arrays.asList(structObjectType.getColumnTypes());

Schema[] schemas = dataTypes.stream().map(dataType -> getComplexTypeDesc(dataType))

.toArray(size -> new Schema[size]);

resultTypeInfo = ParquetUtils.createAvroRecordSchema(columnName,

structObjectType.getColumnNames(), schemas);

break;

case List:

resultTypeInfo =

Schema.createArray(getComplexTypeDesc(((ListType) type).getTypeOfElement()));

break;

case Union:

final UnionType unionObjectType = (UnionType) type;

final DataType[] columnTypes1 = unionObjectType.getColumnTypes();

List colTypes = new ArrayList<>();

for (int i = 0; i < columnTypes1.length; i++) {

colTypes.add(getComplexTypeDesc(columnTypes1[i]));

}

resultTypeInfo = Schema.createUnion(colTypes);

break;

case Map:

MapType mapObjectType = (MapType) type;

resultTypeInfo = Schema.createMap(getComplexTypeDesc(mapObjectType.getTypeOfValue()));

break;

default:

break;

}

return resultTypeInfo;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值