本文整理汇总了Java中org.apache.parquet.schema.Type.getRepetition方法的典型用法代码示例。如果您正苦于以下问题:Java Type.getRepetition方法的具体用法?Java Type.getRepetition怎么用?Java Type.getRepetition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.parquet.schema.Type
的用法示例。
在下文中一共展示了Type.getRepetition方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: renameChildTypeToElement
import org.apache.parquet.schema.Type; //导入方法依赖的package包/类
/**
* Changes the list inner '$data$' vector name to 'element' in the schema
*/
private Type renameChildTypeToElement(Type childType) {
if (childType.isPrimitive()) {
PrimitiveType childPrimitiveType = childType.asPrimitiveType();
return new PrimitiveType(childType.getRepetition(),
childPrimitiveType.getPrimitiveTypeName(),
childPrimitiveType.getTypeLength(),
"element",
childPrimitiveType.getOriginalType(),
childPrimitiveType.getDecimalMetadata(),
null);
} else {
GroupType childGroupType = childType.asGroupType();
return new GroupType(childType.getRepetition(),
"element",
childType.getOriginalType(),
childGroupType.getFields());
}
}
示例2: validate
import org.apache.parquet.schema.Type; //导入方法依赖的package包/类
private void validate(PrimitiveTypeName p) {
Type currentType = types.peek().asGroupType().getType(fields.peek());
int c = fieldValueCount.pop() + 1;
fieldValueCount.push(c);
LOG.debug("validate {} for {}",p ,currentType.getName());
switch (currentType.getRepetition()) {
case OPTIONAL:
case REQUIRED:
if (c > 1) {
throw new InvalidRecordException("repeated value when the type is not repeated in " + currentType);
}
break;
case REPEATED:
break;
default:
throw new InvalidRecordException("unknown repetition " + currentType.getRepetition() + " in " + currentType);
}
if (!currentType.isPrimitive() || currentType.asPrimitiveType().getPrimitiveTypeName() != p) {
throw new InvalidRecordException("expected type " + p + " but got "+ currentType);
}
}
示例3: hasMissingRequiredFieldInGroupType
import org.apache.parquet.schema.Type; //导入方法依赖的package包/类
private boolean hasMissingRequiredFieldInGroupType(GroupType requested, GroupType fullSchema) {
for (Type field : fullSchema.getFields()) {
if (requested.containsField(field.getName())) {
Type requestedType = requested.getType(field.getName());
// if a field is in requested schema and the type of it is a group type, then do recursive check
if (!field.isPrimitive()) {
if (hasMissingRequiredFieldInGroupType(requestedType.asGroupType(), field.asGroupType())) {
return true;
} else {
continue;// check next field
}
}
} else {
if (field.getRepetition() == Type.Repetition.REQUIRED) {
return true; // if a field is missing in requested schema and it's required
} else {
continue; // the missing field is not required, then continue checking next field
}
}
}
return false;
}
示例4: getType
import org.apache.parquet.schema.Type; //导入方法依赖的package包/类
private static Type getType(String[] pathSegments, int depth, MessageType schema) {
Type type = schema.getType(Arrays.copyOfRange(pathSegments, 0, depth + 1));
if (depth + 1 == pathSegments.length) {
return type;
} else {
Preconditions.checkState(!type.isPrimitive());
return new GroupType(type.getRepetition(), type.getName(), type.getOriginalType(), getType(pathSegments, depth + 1, schema));
}
}
示例5: getType
import org.apache.parquet.schema.Type; //导入方法依赖的package包/类
private static Type getType(String[] pathSegments, int depth, MessageType schema) {
Type type = schema.getType(Arrays.copyOfRange(pathSegments, 0, depth + 1));
if (depth + 1 == pathSegments.length) {
return type;
} else {
Preconditions.checkState(!type.isPrimitive());
return new GroupType(type.getRepetition(), type.getName(), getType(pathSegments, depth + 1, schema));
}
}
示例6: groupToStrings
import org.apache.parquet.schema.Type; //导入方法依赖的package包/类
protected List<String> groupToStrings(SimpleGroup grp) {
ArrayList<String> s = new ArrayList<>();
for (int n = 0; n < grp.getType().getFieldCount(); n ++) {
Type field = grp.getType().getType(n);
try {
if (!field.isPrimitive())
s.addAll(groupToStrings((SimpleGroup) grp.getGroup(n, 0))); // array of groups not (yet) supported
else if (field.getRepetition() == Type.Repetition.REPEATED) {
boolean is_binary =
field.asPrimitiveType().getPrimitiveTypeName() == PrimitiveType.PrimitiveTypeName.BINARY;
StringBuilder sb = new StringBuilder("[");
ArrayList<String> arr = new ArrayList<>();
for (int i = 0; i < grp.getFieldRepetitionCount(n); i ++)
arr.add(is_binary ? "\"" + grp.getValueToString(n, i) + "\"" :
grp.getValueToString(n, i));
sb.append(Joiner.on(", ").join(arr));
sb.append("]");
s.add(sb.toString());
}
else
s.add(grp.getValueToString(n, 0));
}
catch (RuntimeException e) {
if(e.getMessage().startsWith("not found") && field.getRepetition() == Type.Repetition.OPTIONAL)
s.add("");
else
throw e;
}
}
return s;
}
示例7: groupToJson
import org.apache.parquet.schema.Type; //导入方法依赖的package包/类
private void groupToJson(JsonGenerator currentGenerator, SimpleGroup grp)
throws IOException {
GroupType gt = grp.getType();
currentGenerator.writeStartObject();
for(int i = 0; i < gt.getFieldCount(); i ++) {
String field = gt.getFieldName(i);
try {
Type t = gt.getType(i);
int repetition = 1;
boolean repeated = false;
if (t.getRepetition() == Type.Repetition.REPEATED) {
repeated = true;
repetition = grp.getFieldRepetitionCount(i);
currentGenerator.writeArrayFieldStart(field);
}
else
currentGenerator.writeFieldName(field);
for(int j = 0; j < repetition; j ++) {
if (t.isPrimitive()) {
switch (t.asPrimitiveType().getPrimitiveTypeName()) {
case BINARY:
currentGenerator.writeString(grp.getString(i, j));
break;
case INT32:
currentGenerator.writeNumber(grp.getInteger(i, j));
break;
case INT96:
case INT64:
// clumsy way - TODO - Subclass SimpleGroup or something like that
currentGenerator.writeNumber(Long.parseLong(grp.getValueToString(i, j)));
break;
case DOUBLE:
case FLOAT:
currentGenerator.writeNumber(Double.parseDouble(grp.getValueToString(i, j)));
break;
case BOOLEAN:
currentGenerator.writeBoolean(grp.getBoolean(i, j));
break;
default:
throw new RuntimeException("Can't handle type " + gt.getType(i));
}
} else {
groupToJson(currentGenerator, (SimpleGroup) grp.getGroup(i, j));
}
}
if (repeated)
currentGenerator.writeEndArray();
}
catch (Exception e) {
if (e.getMessage().startsWith("not found") && gt.getType(i).getRepetition() == Type.Repetition.OPTIONAL)
currentGenerator.writeNull();
else
throw new RuntimeException(e);
}
}
currentGenerator.writeEndObject();
}