Java Code Examples for org.apache.flink.api.java.typeutils.ObjectArrayTypeInfo#getInfoFor()
The following examples show how to use
org.apache.flink.api.java.typeutils.ObjectArrayTypeInfo#getInfoFor() .
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 File: DataStreamTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@Test public void testObjectArrayKeyRejection() { KeySelector<Tuple2<Integer[], String>, Object[]> keySelector = new KeySelector<Tuple2<Integer[], String>, Object[]>() { @Override public Object[] getKey(Tuple2<Integer[], String> value) throws Exception { Object[] ks = new Object[value.f0.length]; for (int i = 0; i < ks.length; i++) { ks[i] = new Object(); } return ks; } }; ObjectArrayTypeInfo<Object[], Object> keyTypeInfo = ObjectArrayTypeInfo.getInfoFor( Object[].class, new GenericTypeInfo<>(Object.class)); testKeyRejection(keySelector, keyTypeInfo); }
Example 2
Source File: DataStreamTest.java From flink with Apache License 2.0 | 6 votes |
@Test public void testObjectArrayKeyRejection() { KeySelector<Tuple2<Integer[], String>, Object[]> keySelector = new KeySelector<Tuple2<Integer[], String>, Object[]>() { @Override public Object[] getKey(Tuple2<Integer[], String> value) throws Exception { Object[] ks = new Object[value.f0.length]; for (int i = 0; i < ks.length; i++) { ks[i] = new Object(); } return ks; } }; ObjectArrayTypeInfo<Object[], Object> keyTypeInfo = ObjectArrayTypeInfo.getInfoFor( Object[].class, new GenericTypeInfo<>(Object.class)); testKeyRejection(keySelector, keyTypeInfo); }
Example 3
Source File: ParquetSchemaConverter.java From flink with Apache License 2.0 | 5 votes |
private static TypeInformation<?> convertParquetPrimitiveListToFlinkArray(Type type) { // Backward-compatibility element group doesn't exist also allowed TypeInformation<?> flinkType = convertParquetTypeToTypeInfo(type); if (flinkType.isBasicType()) { return BasicArrayTypeInfo.getInfoFor(Array.newInstance(flinkType.getTypeClass(), 0).getClass()); } else { // flinkType here can be either SqlTimeTypeInfo or BasicTypeInfo.BIG_DEC_TYPE_INFO, // So it should be converted to ObjectArrayTypeInfo return ObjectArrayTypeInfo.getInfoFor(flinkType); } }
Example 4
Source File: OrcTableSourceTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
private TypeInformation[] getNestedFieldTypes() { return new TypeInformation[]{ Types.BOOLEAN, Types.BYTE, Types.SHORT, Types.INT, Types.LONG, Types.FLOAT, Types.DOUBLE, PrimitiveArrayTypeInfo.BYTE_PRIMITIVE_ARRAY_TYPE_INFO, Types.STRING, Types.ROW_NAMED( new String[]{"list"}, ObjectArrayTypeInfo.getInfoFor( Types.ROW_NAMED( new String[]{"int1", "string1"}, Types.INT, Types.STRING ) ) ), ObjectArrayTypeInfo.getInfoFor( Types.ROW_NAMED( new String[]{"int1", "string1"}, Types.INT, Types.STRING ) ), new MapTypeInfo<>( Types.STRING, Types.ROW_NAMED( new String[]{"int1", "string1"}, Types.INT, Types.STRING ) ) }; }
Example 5
Source File: Types.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
/** * Returns type information for Java arrays of object types (such as <code>String[]</code>, * <code>Integer[]</code>). The array itself must not be null. Null values for elements are supported. * * @param elementType element type of the array */ @SuppressWarnings("unchecked") public static <E> TypeInformation<E[]> OBJECT_ARRAY(TypeInformation<E> elementType) { if (elementType == Types.STRING) { return (TypeInformation) BasicArrayTypeInfo.STRING_ARRAY_TYPE_INFO; } return ObjectArrayTypeInfo.getInfoFor(elementType); }
Example 6
Source File: OrcTableSourceTest.java From flink with Apache License 2.0 | 5 votes |
private TypeInformation[] getNestedFieldTypes() { return new TypeInformation[]{ Types.BOOLEAN, Types.BYTE, Types.SHORT, Types.INT, Types.LONG, Types.FLOAT, Types.DOUBLE, PrimitiveArrayTypeInfo.BYTE_PRIMITIVE_ARRAY_TYPE_INFO, Types.STRING, Types.ROW_NAMED( new String[]{"list"}, ObjectArrayTypeInfo.getInfoFor( Types.ROW_NAMED( new String[]{"int1", "string1"}, Types.INT, Types.STRING ) ) ), ObjectArrayTypeInfo.getInfoFor( Types.ROW_NAMED( new String[]{"int1", "string1"}, Types.INT, Types.STRING ) ), new MapTypeInfo<>( Types.STRING, Types.ROW_NAMED( new String[]{"int1", "string1"}, Types.INT, Types.STRING ) ) }; }
Example 7
Source File: Types.java From flink with Apache License 2.0 | 5 votes |
/** * Returns type information for Java arrays of object types (such as <code>String[]</code>, * <code>Integer[]</code>). The array itself must not be null. Null values for elements are supported. * * @param elementType element type of the array */ @SuppressWarnings("unchecked") public static <E> TypeInformation<E[]> OBJECT_ARRAY(TypeInformation<E> elementType) { if (elementType == Types.STRING) { return (TypeInformation) BasicArrayTypeInfo.STRING_ARRAY_TYPE_INFO; } return ObjectArrayTypeInfo.getInfoFor(elementType); }
Example 8
Source File: ParquetSchemaConverter.java From flink with Apache License 2.0 | 5 votes |
private static TypeInformation<?> convertParquetPrimitiveListToFlinkArray(Type type) { // Backward-compatibility element group doesn't exist also allowed TypeInformation<?> flinkType = convertParquetTypeToTypeInfo(type); if (flinkType.isBasicType()) { return BasicArrayTypeInfo.getInfoFor(Array.newInstance(flinkType.getTypeClass(), 0).getClass()); } else { // flinkType here can be either SqlTimeTypeInfo or BasicTypeInfo.BIG_DEC_TYPE_INFO, // So it should be converted to ObjectArrayTypeInfo return ObjectArrayTypeInfo.getInfoFor(flinkType); } }
Example 9
Source File: OrcTableSourceTest.java From flink with Apache License 2.0 | 5 votes |
private Expression unsupportedPred() { return new EqualTo( new GetCompositeField( new ItemAt( new PlannerResolvedFieldReference( "list", ObjectArrayTypeInfo.getInfoFor( Types.ROW_NAMED(new String[] {"int1", "string1"}, Types.INT, Types.STRING))), new Literal(1, Types.INT)), "int1"), new Literal(1, Types.INT) ); }
Example 10
Source File: Types.java From flink with Apache License 2.0 | 5 votes |
/** * Returns type information for Java arrays of object types (such as <code>String[]</code>, * <code>Integer[]</code>). The array itself must not be null. Null values for elements are supported. * * @param elementType element type of the array */ @SuppressWarnings("unchecked") public static <E> TypeInformation<E[]> OBJECT_ARRAY(TypeInformation<E> elementType) { if (elementType == Types.STRING) { return (TypeInformation) BasicArrayTypeInfo.STRING_ARRAY_TYPE_INFO; } return ObjectArrayTypeInfo.getInfoFor(elementType); }
Example 11
Source File: LegacyTypeInfoDataTypeConverter.java From flink with Apache License 2.0 | 4 votes |
private static TypeInformation<?> convertToObjectArrayTypeInfo(CollectionDataType collectionDataType) { // Types.OBJECT_ARRAY would return a basic type info for strings return ObjectArrayTypeInfo.getInfoFor( toLegacyTypeInfo(collectionDataType.getElementDataType())); }
Example 12
Source File: LegacyTypeInfoDataTypeConverter.java From flink with Apache License 2.0 | 4 votes |
private static TypeInformation<?> convertToObjectArrayTypeInfo(CollectionDataType collectionDataType) { // Types.OBJECT_ARRAY would return a basic type info for strings return ObjectArrayTypeInfo.getInfoFor( toLegacyTypeInfo(collectionDataType.getElementDataType())); }
Example 13
Source File: TypeInfoDataTypeConverter.java From flink with Apache License 2.0 | 4 votes |
public static TypeInformation<?> fromDataTypeToTypeInfo(DataType dataType) { Class<?> clazz = dataType.getConversionClass(); if (clazz.isPrimitive()) { final TypeInformation<?> foundTypeInfo = primitiveDataTypeTypeInfoMap.get(clazz.getName()); if (foundTypeInfo != null) { return foundTypeInfo; } } LogicalType logicalType = fromDataTypeToLogicalType(dataType); switch (logicalType.getTypeRoot()) { case TIMESTAMP_WITHOUT_TIME_ZONE: TimestampType timestampType = (TimestampType) logicalType; int precision = timestampType.getPrecision(); if (timestampType.getKind() == TimestampKind.REGULAR) { return clazz == TimestampData.class ? new TimestampDataTypeInfo(precision) : (clazz == LocalDateTime.class ? ((3 == precision) ? Types.LOCAL_DATE_TIME : new LegacyLocalDateTimeTypeInfo(precision)) : ((3 == precision) ? Types.SQL_TIMESTAMP : new LegacyTimestampTypeInfo(precision))); } else { return TypeConversions.fromDataTypeToLegacyInfo(dataType); } case TIMESTAMP_WITH_LOCAL_TIME_ZONE: LocalZonedTimestampType lzTs = (LocalZonedTimestampType) logicalType; int precisionLzTs = lzTs.getPrecision(); return clazz == TimestampData.class ? new TimestampDataTypeInfo(precisionLzTs) : (clazz == Instant.class ? ((3 == precisionLzTs) ? Types.INSTANT : new LegacyInstantTypeInfo(precisionLzTs)) : TypeConversions.fromDataTypeToLegacyInfo(dataType)); case DECIMAL: DecimalType decimalType = (DecimalType) logicalType; return clazz == DecimalData.class ? new DecimalDataTypeInfo(decimalType.getPrecision(), decimalType.getScale()) : new BigDecimalTypeInfo(decimalType.getPrecision(), decimalType.getScale()); case CHAR: case VARCHAR: // ignore precision return clazz == StringData.class ? StringDataTypeInfo.INSTANCE : BasicTypeInfo.STRING_TYPE_INFO; case BINARY: case VARBINARY: // ignore precision return PrimitiveArrayTypeInfo.BYTE_PRIMITIVE_ARRAY_TYPE_INFO; case INTERVAL_YEAR_MONTH: return TimeIntervalTypeInfo.INTERVAL_MONTHS; case INTERVAL_DAY_TIME: return TimeIntervalTypeInfo.INTERVAL_MILLIS; case ARRAY: if (dataType instanceof CollectionDataType && !isPrimitive(((CollectionDataType) dataType).getElementDataType().getLogicalType())) { return ObjectArrayTypeInfo.getInfoFor( fromDataTypeToTypeInfo(((CollectionDataType) dataType).getElementDataType())); } else { return TypeConversions.fromDataTypeToLegacyInfo(dataType); } case MAP: KeyValueDataType mapType = (KeyValueDataType) dataType; return new MapTypeInfo( fromDataTypeToTypeInfo(mapType.getKeyDataType()), fromDataTypeToTypeInfo(mapType.getValueDataType())); case MULTISET: return MultisetTypeInfo.getInfoFor( fromDataTypeToTypeInfo(((CollectionDataType) dataType).getElementDataType())); case ROW: if (RowData.class.isAssignableFrom(dataType.getConversionClass())) { return RowDataTypeInfo.of((RowType) fromDataTypeToLogicalType(dataType)); } else if (Row.class == dataType.getConversionClass()) { RowType logicalRowType = (RowType) logicalType; return new RowTypeInfo( dataType.getChildren() .stream() .map(TypeInfoDataTypeConverter::fromDataTypeToTypeInfo) .toArray(TypeInformation[]::new), logicalRowType.getFieldNames().toArray(new String[0])); } else { return TypeConversions.fromDataTypeToLegacyInfo(dataType); } case RAW: if (logicalType instanceof RawType) { final RawType<?> rawType = (RawType<?>) logicalType; return createWrapperTypeInfo(rawType); } return TypeConversions.fromDataTypeToLegacyInfo(dataType); default: return TypeConversions.fromDataTypeToLegacyInfo(dataType); } }
Example 14
Source File: FlinkFlowStep.java From cascading-flink with Apache License 2.0 | 4 votes |
private DataSet<Tuple> translateInnerCrossProduct(FlowNode node, List<DataSet<Tuple>> inputs) { int numJoinInputs = inputs.size(); // get out fields of node Scope outScope = getOutScope(node); Fields outFields; if (outScope.isEvery()) { outFields = outScope.getOutGroupingFields(); } else { outFields = outScope.getOutValuesFields(); } registerKryoTypes(outFields); int probeSideDOP = ((Operator)inputs.get(0)).getParallelism(); TypeInformation<Tuple2<Tuple, Tuple[]>> tupleJoinListsTypeInfo = new org.apache.flink.api.java.typeutils.TupleTypeInfo<>( new TupleTypeInfo(Fields.UNKNOWN), ObjectArrayTypeInfo.getInfoFor(new TupleTypeInfo(Fields.UNKNOWN)) ); // prepare tuple list for join DataSet<Tuple2<Tuple, Tuple[]>> tupleJoinLists = inputs.get(0) .map(new JoinPrepareMapper(numJoinInputs, null, null)) .returns(tupleJoinListsTypeInfo) .setParallelism(probeSideDOP) .name("hashjoin-" + node.getID()); for (int i = 1; i < inputs.size(); i++) { tupleJoinLists = tupleJoinLists.crossWithTiny(inputs.get(i)) .with(new TupleAppendCrosser(i)) .returns(tupleJoinListsTypeInfo) .setParallelism(probeSideDOP) .name("hashjoin-" + node.getID()); } return tupleJoinLists .mapPartition(new HashJoinMapper(node)) .withParameters(this.getFlinkNodeConfig(node)) .setParallelism(probeSideDOP) .returns(new TupleTypeInfo(outFields)) .name("hashjoin-" + node.getID()); }
Example 15
Source File: ParquetTableSourceTest.java From flink with Apache License 2.0 | 4 votes |
@Test public void testFieldsFilter() throws Exception { ParquetTableSource parquetTableSource = createNestedTestParquetTableSource(testPath); // expressions for supported predicates Expression exp1 = new GreaterThan( new PlannerResolvedFieldReference("foo", Types.LONG), new Literal(100L, Types.LONG)); Expression exp2 = new EqualTo( new Literal(100L, Types.LONG), new PlannerResolvedFieldReference("bar.spam", Types.LONG)); // unsupported predicate Expression unsupported = new EqualTo( new GetCompositeField( new ItemAt( new PlannerResolvedFieldReference( "nestedArray", ObjectArrayTypeInfo.getInfoFor( Types.ROW_NAMED(new String[] {"type", "name"}, Types.STRING, Types.STRING))), new Literal(1, Types.INT)), "type"), new Literal("test", Types.STRING)); // invalid predicate Expression invalidPred = new EqualTo( new PlannerResolvedFieldReference("nonField", Types.LONG), // some invalid, non-serializable, literal (here an object of this test class) new Literal(new ParquetTableSourceTest(), Types.LONG) ); List<Expression> exps = new ArrayList<>(); exps.add(exp1); exps.add(exp2); exps.add(unsupported); exps.add(invalidPred); // apply predict on TableSource ParquetTableSource filtered = (ParquetTableSource) parquetTableSource.applyPredicate(exps); // ensure copy is returned assertNotSame(parquetTableSource, filtered); // ensure table schema is identical assertEquals(parquetTableSource.getTableSchema(), filtered.getTableSchema()); // ensure return type is identical assertEquals(NESTED_ROW_TYPE, filtered.getReturnType()); // ensure source description is not the same assertNotEquals(parquetTableSource.explainSource(), filtered.explainSource()); // check that pushdown was recorded assertTrue(filtered.isFilterPushedDown()); assertFalse(parquetTableSource.isFilterPushedDown()); // ensure that supported predicates were removed from list of offered expressions assertEquals(2, exps.size()); assertTrue(exps.contains(unsupported)); assertTrue(exps.contains(invalidPred)); // ensure ParquetInputFormat is correctly configured with filter DataSet<Row> data = filtered.getDataSet(ExecutionEnvironment.createLocalEnvironment()); InputFormat<Row, ?> inputFormat = ((DataSource<Row>) data).getInputFormat(); assertTrue(inputFormat instanceof ParquetRowInputFormat); ParquetRowInputFormat parquetIF = (ParquetRowInputFormat) inputFormat; // expected predicate FilterPredicate a = FilterApi.gt(FilterApi.longColumn("foo"), 100L); FilterPredicate b = FilterApi.eq(FilterApi.longColumn("bar.spam"), 100L); FilterPredicate expected = FilterApi.and(a, b); // actual predicate FilterPredicate predicate = parquetIF.getPredicate(); // check predicate assertEquals(expected, predicate); }
Example 16
Source File: OrcTableSourceTest.java From flink with Apache License 2.0 | 4 votes |
@Test @SuppressWarnings("unchecked") public void testApplyPredicate() throws Exception { OrcTableSource orc = OrcTableSource.builder() .path(getPath(TEST_FILE_NESTED)) .forOrcSchema(TEST_SCHEMA_NESTED) .build(); // expressions for supported predicates Expression pred1 = new GreaterThan( new PlannerResolvedFieldReference("int1", Types.INT), new Literal(100, Types.INT)); Expression pred2 = new EqualTo( new PlannerResolvedFieldReference("string1", Types.STRING), new Literal("hello", Types.STRING)); // unsupported predicate Expression unsupportedPred = new EqualTo( new GetCompositeField( new ItemAt( new PlannerResolvedFieldReference( "list", ObjectArrayTypeInfo.getInfoFor( Types.ROW_NAMED(new String[] {"int1", "string1"}, Types.INT, Types.STRING))), new Literal(1, Types.INT)), "int1"), new Literal(1, Types.INT) ); // invalid predicate Expression invalidPred = new EqualTo( new PlannerResolvedFieldReference("long1", Types.LONG), // some invalid, non-serializable literal (here an object of this test class) new Literal(new OrcTableSourceTest(), Types.LONG) ); ArrayList<Expression> preds = new ArrayList<>(); preds.add(pred1); preds.add(pred2); preds.add(unsupportedPred); preds.add(invalidPred); // apply predicates on TableSource OrcTableSource projected = (OrcTableSource) orc.applyPredicate(preds); // ensure copy is returned assertTrue(orc != projected); // ensure table schema is identical assertEquals(orc.getTableSchema(), projected.getTableSchema()); // ensure return type is identical assertEquals( Types.ROW_NAMED(getNestedFieldNames(), getNestedFieldTypes()), projected.getReturnType()); // ensure IF is configured with valid/supported predicates OrcTableSource spyTS = spy(projected); OrcRowInputFormat mockIF = mock(OrcRowInputFormat.class); doReturn(mockIF).when(spyTS).buildOrcInputFormat(); ExecutionEnvironment environment = mock(ExecutionEnvironment.class); when(environment.createInput(any(InputFormat.class))).thenReturn(mock(DataSource.class)); spyTS.getDataSet(environment); ArgumentCaptor<OrcRowInputFormat.Predicate> arguments = ArgumentCaptor.forClass(OrcRowInputFormat.Predicate.class); verify(mockIF, times(2)).addPredicate(arguments.capture()); List<String> values = arguments.getAllValues().stream().map(Object::toString).collect(Collectors.toList()); assertTrue(values.contains( new OrcRowInputFormat.Not(new OrcRowInputFormat.LessThanEquals("int1", PredicateLeaf.Type.LONG, 100)).toString())); assertTrue(values.contains( new OrcRowInputFormat.Equals("string1", PredicateLeaf.Type.STRING, "hello").toString())); // ensure filter pushdown is correct assertTrue(spyTS.isFilterPushedDown()); assertFalse(orc.isFilterPushedDown()); }
Example 17
Source File: OrcBatchReader.java From flink with Apache License 2.0 | 4 votes |
/** * Converts an ORC schema to a Flink TypeInformation. * * @param schema The ORC schema. * @return The TypeInformation that corresponds to the ORC schema. */ static TypeInformation schemaToTypeInfo(TypeDescription schema) { switch (schema.getCategory()) { case BOOLEAN: return BasicTypeInfo.BOOLEAN_TYPE_INFO; case BYTE: return BasicTypeInfo.BYTE_TYPE_INFO; case SHORT: return BasicTypeInfo.SHORT_TYPE_INFO; case INT: return BasicTypeInfo.INT_TYPE_INFO; case LONG: return BasicTypeInfo.LONG_TYPE_INFO; case FLOAT: return BasicTypeInfo.FLOAT_TYPE_INFO; case DOUBLE: return BasicTypeInfo.DOUBLE_TYPE_INFO; case DECIMAL: return BasicTypeInfo.BIG_DEC_TYPE_INFO; case STRING: case CHAR: case VARCHAR: return BasicTypeInfo.STRING_TYPE_INFO; case DATE: return SqlTimeTypeInfo.DATE; case TIMESTAMP: return SqlTimeTypeInfo.TIMESTAMP; case BINARY: return PrimitiveArrayTypeInfo.BYTE_PRIMITIVE_ARRAY_TYPE_INFO; case STRUCT: List<TypeDescription> fieldSchemas = schema.getChildren(); TypeInformation[] fieldTypes = new TypeInformation[fieldSchemas.size()]; for (int i = 0; i < fieldSchemas.size(); i++) { fieldTypes[i] = schemaToTypeInfo(fieldSchemas.get(i)); } String[] fieldNames = schema.getFieldNames().toArray(new String[]{}); return new RowTypeInfo(fieldTypes, fieldNames); case LIST: TypeDescription elementSchema = schema.getChildren().get(0); TypeInformation<?> elementType = schemaToTypeInfo(elementSchema); // arrays of primitive types are handled as object arrays to support null values return ObjectArrayTypeInfo.getInfoFor(elementType); case MAP: TypeDescription keySchema = schema.getChildren().get(0); TypeDescription valSchema = schema.getChildren().get(1); TypeInformation<?> keyType = schemaToTypeInfo(keySchema); TypeInformation<?> valType = schemaToTypeInfo(valSchema); return new MapTypeInfo<>(keyType, valType); case UNION: throw new UnsupportedOperationException("UNION type is not supported yet."); default: throw new IllegalArgumentException("Unknown type " + schema); } }
Example 18
Source File: OrcTableSourceTest.java From Flink-CEPplus with Apache License 2.0 | 4 votes |
@Test @SuppressWarnings("unchecked") public void testApplyPredicate() throws Exception { OrcTableSource orc = OrcTableSource.builder() .path(getPath(TEST_FILE_NESTED)) .forOrcSchema(TEST_SCHEMA_NESTED) .build(); // expressions for supported predicates Expression pred1 = new GreaterThan( new ResolvedFieldReference("int1", Types.INT), new Literal(100, Types.INT)); Expression pred2 = new EqualTo( new ResolvedFieldReference("string1", Types.STRING), new Literal("hello", Types.STRING)); // unsupported predicate Expression unsupportedPred = new EqualTo( new GetCompositeField( new ItemAt( new ResolvedFieldReference( "list", ObjectArrayTypeInfo.getInfoFor( Types.ROW_NAMED(new String[] {"int1", "string1"}, Types.INT, Types.STRING))), new Literal(1, Types.INT)), "int1"), new Literal(1, Types.INT) ); // invalid predicate Expression invalidPred = new EqualTo( new ResolvedFieldReference("long1", Types.LONG), // some invalid, non-serializable literal (here an object of this test class) new Literal(new OrcTableSourceTest(), Types.LONG) ); ArrayList<Expression> preds = new ArrayList<>(); preds.add(pred1); preds.add(pred2); preds.add(unsupportedPred); preds.add(invalidPred); // apply predicates on TableSource OrcTableSource projected = (OrcTableSource) orc.applyPredicate(preds); // ensure copy is returned assertTrue(orc != projected); // ensure table schema is identical assertEquals(orc.getTableSchema(), projected.getTableSchema()); // ensure return type is identical assertEquals( Types.ROW_NAMED(getNestedFieldNames(), getNestedFieldTypes()), projected.getReturnType()); // ensure IF is configured with valid/supported predicates OrcTableSource spyTS = spy(projected); OrcRowInputFormat mockIF = mock(OrcRowInputFormat.class); doReturn(mockIF).when(spyTS).buildOrcInputFormat(); ExecutionEnvironment environment = mock(ExecutionEnvironment.class); when(environment.createInput(any(InputFormat.class))).thenReturn(mock(DataSource.class)); spyTS.getDataSet(environment); ArgumentCaptor<OrcRowInputFormat.Predicate> arguments = ArgumentCaptor.forClass(OrcRowInputFormat.Predicate.class); verify(mockIF, times(2)).addPredicate(arguments.capture()); List<String> values = arguments.getAllValues().stream().map(Object::toString).collect(Collectors.toList()); assertTrue(values.contains( new OrcRowInputFormat.Not(new OrcRowInputFormat.LessThanEquals("int1", PredicateLeaf.Type.LONG, 100)).toString())); assertTrue(values.contains( new OrcRowInputFormat.Equals("string1", PredicateLeaf.Type.STRING, "hello").toString())); // ensure filter pushdown is correct assertTrue(spyTS.isFilterPushedDown()); assertFalse(orc.isFilterPushedDown()); }
Example 19
Source File: Types.java From flink with Apache License 2.0 | 2 votes |
/** * Generates type information for an array consisting of Java object elements. Null values for * elements are supported. * * @param elementType type of the array elements; e.g. Types.INT() */ public static <E> TypeInformation<E[]> OBJECT_ARRAY(TypeInformation<E> elementType) { return ObjectArrayTypeInfo.getInfoFor(elementType); }
Example 20
Source File: Types.java From flink with Apache License 2.0 | 2 votes |
/** * Generates type information for an array consisting of Java object elements. Null values for * elements are supported. * * @param elementType type of the array elements; e.g. Types.INT() */ public static <E> TypeInformation<E[]> OBJECT_ARRAY(TypeInformation<E> elementType) { return ObjectArrayTypeInfo.getInfoFor(elementType); }