/** * Execute SQL query and check results. * * @param query SQL query. * @param expected Expected result. */ private void checkSql(String query, String expected) throws Exception { Table resultTable = tableEnv.sqlQuery(query); DataSet<Row> resultDataSet = tableEnv.toDataSet(resultTable, Row.class); List<Row> results = resultDataSet.collect(); TestBaseUtils.compareResultAsText(results, expected); }
@Test public void testClusterWithIPv6host() { try { ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); env.setParallelism(4); env.getConfig().disableSysoutLogging(); // get input data DataSet<String> text = env.fromElements(WordCountData.TEXT.split("\n")); DataSet<Tuple2<String, Integer>> counts = text .flatMap(new FlatMapFunction<String, Tuple2<String, Integer>>() { @Override public void flatMap(String value, Collector<Tuple2<String, Integer>> out) throws Exception { for (String token : value.toLowerCase().split("\\W+")) { if (token.length() > 0) { out.collect(new Tuple2<String, Integer>(token, 1)); } } } }) .groupBy(0).sum(1); List<Tuple2<String, Integer>> result = counts.collect(); TestBaseUtils.compareResultAsText(result, WordCountData.COUNTS_AS_TUPLES); } catch (Exception e) { e.printStackTrace(); fail(e.getMessage()); } }
@Test public void testAvroStringAccess() throws Exception { ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); BatchTableEnvironment tEnv = TableEnvironment.getTableEnvironment(env, config()); Table t = tEnv.fromDataSet(testData(env)); Table result = t.select("name"); List<Utf8> results = tEnv.toDataSet(result, Types.GENERIC(Utf8.class)).collect(); String expected = "Charlie\n" + "Terminator\n" + "Whatever"; TestBaseUtils.compareResultAsText(results, expected); }
@Test public void testAvroObjectAccess() throws Exception { ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); BatchTableEnvironment tEnv = TableEnvironment.getTableEnvironment(env, config()); Table t = tEnv.fromDataSet(testData(env)); Table result = t .filter("type_nested.isNotNull") .select("type_nested.flatten()").as("city, num, state, street, zip"); List<Address> results = tEnv.toDataSet(result, Types.POJO(Address.class)).collect(); String expected = USER_1.getTypeNested().toString(); TestBaseUtils.compareResultAsText(results, expected); }
@Test public void testAvroToRow() throws Exception { ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); env.getConfig().registerTypeWithKryoSerializer(LocalDate.class, AvroKryoSerializerUtils.JodaLocalDateSerializer.class); env.getConfig().registerTypeWithKryoSerializer(LocalTime.class, AvroKryoSerializerUtils.JodaLocalTimeSerializer.class); BatchTableEnvironment tEnv = TableEnvironment.getTableEnvironment(env, config()); Table t = tEnv.fromDataSet(testData(env)); Table result = t.select("*"); List<Row> results = tEnv.toDataSet(result, Row.class).collect(); String expected = "black,null,Whatever,[true],[hello],true,java.nio.HeapByteBuffer[pos=0 lim=10 cap=10]," + "2014-03-01,java.nio.HeapByteBuffer[pos=0 lim=2 cap=2],[7, -48],0.0,GREEN," + "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],42,{},null,null,null,123456," + "12:12:12.000,123456,2014-03-01T12:12:12.321Z,null\n" + "blue,null,Charlie,[],[],false,java.nio.HeapByteBuffer[pos=0 lim=10 cap=10],2014-03-01," + "java.nio.HeapByteBuffer[pos=0 lim=2 cap=2],[7, -48],1.337,RED,null,1337,{}," + "{\"num\": 42, \"street\": \"Bakerstreet\", \"city\": \"Berlin\", \"state\": " + "\"Berlin\", \"zip\": \"12049\"},null,null,123456,12:12:12.000,123456," + "2014-03-01T12:12:12.321Z,null\n" + "yellow,null,Terminator,[false],[world],false," + "java.nio.HeapByteBuffer[pos=0 lim=10 cap=10],2014-03-01," + "java.nio.HeapByteBuffer[pos=0 lim=2 cap=2],[7, -48],0.0,GREEN," + "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],1,{},null,null,null,123456," + "12:12:12.000,123456,2014-03-01T12:12:12.321Z,null"; TestBaseUtils.compareResultAsText(results, expected); }