Java源码示例:org.apache.hadoop.hive.serde2.objectinspector.SettableListObjectInspector
示例1
@Override
public void add(StdData e) {
if (_listObjectInspector instanceof SettableListObjectInspector) {
SettableListObjectInspector settableListObjectInspector = (SettableListObjectInspector) _listObjectInspector;
int originalSize = size();
settableListObjectInspector.resize(_object, originalSize + 1);
settableListObjectInspector.set(_object, originalSize,
((HiveData) e).getUnderlyingDataForObjectInspector(_elementObjectInspector));
_isObjectModified = true;
} else {
throw new RuntimeException("Attempt to modify an immutable Hive object of type: "
+ _listObjectInspector.getClass());
}
}
示例2
/**
* Returns a converter that converts objects from one OI to another OI. The
* returned (converted) object does not belong to the converter. Hence once convertor can be used
* multiple times within one eval invocation.
*/
public Converter getConverter(ObjectInspector inputOI, ObjectInspector outputOI) {
// If the inputOI is the same as the outputOI, just return an
// IdentityConverter.
if (inputOI.equals(outputOI)) {
return new ObjectInspectorConverters.IdentityConverter();
}
Converter c = getConverterFromCache(inputOI, outputOI);
if (c != null) {
return c;
}
switch (outputOI.getCategory()) {
case PRIMITIVE:
return getConverter((PrimitiveObjectInspector) inputOI, (PrimitiveObjectInspector) outputOI);
case STRUCT:
c = new StructConverter(inputOI, (SettableStructObjectInspector) outputOI);
break;
case LIST:
c = new ListConverter(inputOI, (SettableListObjectInspector) outputOI);
break;
case MAP:
c = new MapConverter(inputOI, (SettableMapObjectInspector) outputOI);
break;
default:
throw new UnsupportedOperationException(
"Hive internal error: conversion of " + inputOI.getTypeName() + " to " + outputOI.getTypeName()
+ " not supported yet.");
}
cacheConverter(inputOI, outputOI, c);
return c;
}
示例3
public ListConverter(ObjectInspector inputOI, SettableListObjectInspector outputOI) {
if (inputOI instanceof ListObjectInspector) {
this.inputOI = (ListObjectInspector) inputOI;
this.outputOI = outputOI;
inputElementOI = this.inputOI.getListElementObjectInspector();
outputElementOI = outputOI.getListElementObjectInspector();
elementConverter = getConverter(inputElementOI, outputElementOI);
} else if (!(inputOI instanceof VoidObjectInspector)) {
throw new UnsupportedOperationException(
"Hive internal error: conversion of " + inputOI.getTypeName() + " to " + outputOI.getTypeName()
+ "not supported yet.");
}
}