in pig/src/main/java/com/twitter/elephantbird/pig/util/ProtobufToPig.java [250:279]
private byte getPigDataType(FieldDescriptor fieldDescriptor) {
switch (fieldDescriptor.getType()) {
case INT32:
case UINT32:
case SINT32:
case FIXED32:
case SFIXED32:
case BOOL: // We convert booleans to ints for pig output.
return DataType.INTEGER;
case INT64:
case UINT64:
case SINT64:
case FIXED64:
case SFIXED64:
return DataType.LONG;
case FLOAT:
return DataType.FLOAT;
case DOUBLE:
return DataType.DOUBLE;
case STRING:
case ENUM: // We convert enums to strings for pig output.
return DataType.CHARARRAY;
case BYTES:
return DataType.BYTEARRAY;
case MESSAGE:
throw new IllegalArgumentException("getPigDataType called on field " + fieldDescriptor.getFullName() + " of type message.");
default:
throw new IllegalArgumentException("Unexpected field type. " + fieldDescriptor.toString() + " " + fieldDescriptor.getFullName() + " " + fieldDescriptor.getType());
}
}