Java Code Examples for org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector

The following examples show how to use org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: flink   Source File: TestHiveGenericUDF.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException {
	checkArgument(arguments.length == 2);

	// TEST for constant arguments
	checkArgument(arguments[1] instanceof ConstantObjectInspector);
	Object constant = ((ConstantObjectInspector) arguments[1]).getWritableConstantValue();
	checkArgument(constant instanceof IntWritable);
	checkArgument(((IntWritable) constant).get() == 1);

	if (arguments[0] instanceof IntObjectInspector ||
			arguments[0] instanceof StringObjectInspector) {
		return arguments[0];
	} else {
		throw new RuntimeException("Not support argument: " + arguments[0]);
	}
}
 
Example 2
Source Project: incubator-hivemall   Source File: HiveUtils.java    License: Apache License 2.0 6 votes vote down vote up
@Nullable
public static String[] getConstStringArray(@Nonnull final ObjectInspector oi)
        throws UDFArgumentException {
    if (!ObjectInspectorUtils.isConstantObjectInspector(oi)) {
        throw new UDFArgumentException("argument must be a constant value: "
                + TypeInfoUtils.getTypeInfoFromObjectInspector(oi));
    }
    ConstantObjectInspector constOI = (ConstantObjectInspector) oi;
    if (constOI.getCategory() != Category.LIST) {
        throw new UDFArgumentException(
            "argument must be an array: " + TypeInfoUtils.getTypeInfoFromObjectInspector(oi));
    }
    final List<?> lst = (List<?>) constOI.getWritableConstantValue();
    if (lst == null) {
        return null;
    }
    final int size = lst.size();
    final String[] ary = new String[size];
    for (int i = 0; i < size; i++) {
        Object o = lst.get(i);
        if (o != null) {
            ary[i] = o.toString();
        }
    }
    return ary;
}
 
Example 3
Source Project: flink   Source File: HiveGenericUDF.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public Object evalInternal(Object[] args) {

	for (int i = 0; i < args.length; i++) {
		((DeferredObjectAdapter) deferredObjects[i]).set(args[i]);
	}

	try {
		Object result = returnInspector instanceof ConstantObjectInspector ?
				((ConstantObjectInspector) returnInspector).getWritableConstantValue() :
				function.evaluate(deferredObjects);
		return HiveInspectors.toFlinkObject(returnInspector, result, hiveShim);
	} catch (HiveException e) {
		throw new FlinkHiveUDFException(e);
	}
}
 
Example 4
Source Project: flink   Source File: TestHiveGenericUDF.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException {
	checkArgument(arguments.length == 2);

	// TEST for constant arguments
	checkArgument(arguments[1] instanceof ConstantObjectInspector);
	Object constant = ((ConstantObjectInspector) arguments[1]).getWritableConstantValue();
	checkArgument(constant instanceof IntWritable);
	checkArgument(((IntWritable) constant).get() == 1);

	if (arguments[0] instanceof IntObjectInspector ||
			arguments[0] instanceof StringObjectInspector) {
		return arguments[0];
	} else {
		throw new RuntimeException("Not support argument: " + arguments[0]);
	}
}
 
Example 5
Source Project: flink   Source File: HiveInspectors.java    License: Apache License 2.0 5 votes vote down vote up
private static ConstantObjectInspector getPrimitiveJavaConstantObjectInspector(PrimitiveTypeInfo typeInfo, Object value) {
	switch (typeInfo.getPrimitiveCategory()) {
		case BOOLEAN:
			return new JavaConstantBooleanObjectInspector((Boolean) value);
		case BYTE:
			return new JavaConstantByteObjectInspector((Byte) value);
		case SHORT:
			return new JavaConstantShortObjectInspector((Short) value);
		case INT:
			return new JavaConstantIntObjectInspector((Integer) value);
		case LONG:
			return new JavaConstantLongObjectInspector((Long) value);
		case FLOAT:
			return new JavaConstantFloatObjectInspector((Float) value);
		case DOUBLE:
			return new JavaConstantDoubleObjectInspector((Double) value);
		case STRING:
			return new JavaConstantStringObjectInspector((String) value);
		case CHAR:
			return new JavaConstantHiveCharObjectInspector((HiveChar) value);
		case VARCHAR:
			return new JavaConstantHiveVarcharObjectInspector((HiveVarchar) value);
		case DATE:
			return new JavaConstantDateObjectInspector((Date) value);
		case TIMESTAMP:
			return new JavaConstantTimestampObjectInspector((Timestamp) value);
		case DECIMAL:
			return new JavaConstantHiveDecimalObjectInspector((HiveDecimal) value);
		case BINARY:
			return new JavaConstantBinaryObjectInspector((byte[]) value);
		case UNKNOWN:
		case VOID:
			// If type is null, we use the Java Constant String to replace
			return new JavaConstantStringObjectInspector((String) value);
		default:
			throw new FlinkHiveUDFException(
				String.format("Cannot find ConstantObjectInspector for %s", typeInfo));
	}
}
 
Example 6
Source Project: flink   Source File: TestHiveUDTF.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public StructObjectInspector initialize(ObjectInspector[] argOIs) throws UDFArgumentException {
	checkArgument(argOIs.length == 2);

	// TEST for constant arguments
	checkArgument(argOIs[1] instanceof ConstantObjectInspector);
	Object constant = ((ConstantObjectInspector) argOIs[1]).getWritableConstantValue();
	checkArgument(constant instanceof IntWritable);
	checkArgument(((IntWritable) constant).get() == 1);

	return ObjectInspectorFactory.getStandardStructObjectInspector(
		Collections.singletonList("col1"),
		Collections.singletonList(PrimitiveObjectInspectorFactory.javaStringObjectInspector));
}
 
Example 7
Source Project: transport   Source File: StdUdfWrapper.java    License: BSD 2-Clause "Simplified" License 5 votes vote down vote up
protected boolean containsNullValuedNonNullableConstants() {
  for (int i = 0; i < _inputObjectInspectors.length; i++) {
    if (!_nullableArguments[i] && _inputObjectInspectors[i] instanceof ConstantObjectInspector
        && ((ConstantObjectInspector) _inputObjectInspectors[i]).getWritableConstantValue() == null) {
      return true;
    }
  }
  return false;
}
 
Example 8
Source Project: incubator-hivemall   Source File: HiveUtils.java    License: Apache License 2.0 5 votes vote down vote up
@SuppressWarnings("unchecked")
@Nullable
public static <T extends Writable> T getConstValue(@Nonnull final ObjectInspector oi)
        throws UDFArgumentException {
    if (!ObjectInspectorUtils.isConstantObjectInspector(oi)) {
        throw new UDFArgumentException("argument must be a constant value: "
                + TypeInfoUtils.getTypeInfoFromObjectInspector(oi));
    }
    ConstantObjectInspector constOI = (ConstantObjectInspector) oi;
    Object v = constOI.getWritableConstantValue();
    return (T) v;
}
 
Example 9
Source Project: incubator-hivemall   Source File: HiveUtils.java    License: Apache License 2.0 5 votes vote down vote up
@Nullable
public static double[] getConstDoubleArray(@Nonnull final ObjectInspector oi)
        throws UDFArgumentException {
    if (!ObjectInspectorUtils.isConstantObjectInspector(oi)) {
        throw new UDFArgumentException("argument must be a constant value: "
                + TypeInfoUtils.getTypeInfoFromObjectInspector(oi));
    }
    ConstantObjectInspector constOI = (ConstantObjectInspector) oi;
    if (constOI.getCategory() != Category.LIST) {
        throw new UDFArgumentException(
            "argument must be an array: " + TypeInfoUtils.getTypeInfoFromObjectInspector(oi));
    }
    StandardConstantListObjectInspector listOI = (StandardConstantListObjectInspector) constOI;
    PrimitiveObjectInspector elemOI =
            HiveUtils.asDoubleCompatibleOI(listOI.getListElementObjectInspector());

    final List<?> lst = listOI.getWritableConstantValue();
    if (lst == null) {
        return null;
    }
    final int size = lst.size();
    final double[] ary = new double[size];
    for (int i = 0; i < size; i++) {
        Object o = lst.get(i);
        if (o == null) {
            ary[i] = Double.NaN;
        } else {
            ary[i] = PrimitiveObjectInspectorUtils.getDouble(o, elemOI);
        }
    }
    return ary;
}
 
Example 10
Source Project: incubator-hivemall   Source File: HiveUtils.java    License: Apache License 2.0 5 votes vote down vote up
@Nonnull
public static ConstantObjectInspector asConstantObjectInspector(
        @Nonnull final ObjectInspector oi) throws UDFArgumentException {
    if (!ObjectInspectorUtils.isConstantObjectInspector(oi)) {
        throw new UDFArgumentException("argument must be a constant value: "
                + TypeInfoUtils.getTypeInfoFromObjectInspector(oi));
    }
    return (ConstantObjectInspector) oi;
}
 
Example 11
Source Project: flink   Source File: TestHiveUDTF.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public StructObjectInspector initialize(ObjectInspector[] argOIs) throws UDFArgumentException {
	checkArgument(argOIs.length == 2);

	// TEST for constant arguments
	checkArgument(argOIs[1] instanceof ConstantObjectInspector);
	Object constant = ((ConstantObjectInspector) argOIs[1]).getWritableConstantValue();
	checkArgument(constant instanceof IntWritable);
	checkArgument(((IntWritable) constant).get() == 1);

	return ObjectInspectorFactory.getStandardStructObjectInspector(
		Collections.singletonList("col1"),
		Collections.singletonList(PrimitiveObjectInspectorFactory.javaStringObjectInspector));
}
 
Example 12
Source Project: transport   Source File: StdUdfWrapper.java    License: BSD 2-Clause "Simplified" License 4 votes vote down vote up
private StdData[] wrapConstants() {
  return Arrays.stream(_inputObjectInspectors)
      .map(oi -> (oi instanceof ConstantObjectInspector) ? HiveWrapper.createStdData(
          ((ConstantObjectInspector) oi).getWritableConstantValue(), oi, _stdFactory) : null)
      .toArray(StdData[]::new);
}