mark
mark

Reputation: 1

Why Getting StackOverflowError When using flink TableEnvironment.createTemporaryView

when i use flink v1.13 tableEnvironment to create temp view on local mode, why i get this error?

Exception in thread "main" java.lang.StackOverflowError at java.lang.StringBuilder.append(StringBuilder.java:142)   
at org.apache.calcite.sql.type.BasicSqlType.generateTypeString(BasicSqlType.java:178)   
at org.apache.calcite.rel.type.RelDataTypeImpl.computeDigest(RelDataTypeImpl.java:264)  
at org.apache.calcite.sql.type.BasicSqlType.\<init\>(BasicSqlType.java:113)     
at org.apache.calcite.sql.type.BasicSqlType.createWithNullability(BasicSqlType.java:125)    
at org.apache.calcite.sql.type.SqlTypeFactoryImpl.createTypeWithNullability(SqlTypeFactoryImpl.java:200)

my code:

EnvironmentSettings settings = EnvironmentSettings.newInstance()
                .inStreamingMode()
                .useBlinkPlanner()
                .build();
        TableEnvironment tEnv = TableEnvironment.create(settings);

        tEnv.executeSql("create table words(" +
                "word string," +
                "cnt int) with (" +
                "'connector' = 'filesystem'," +
                "'path' = '/Users/mark/xxx/src/main/resources/data/words.txt'," +
                "'format'='csv')");

        Table wordsIn = tEnv.from("words");
        Table filtered = wordsIn.where($("cnt").isGreater(1));

        tEnv.createTemporaryView("words", filtered);
        Table resT = tEnv.sqlQuery("select * from words order by word asc");


        tEnv.executeSql("create table word_count(" +
                "word string," +
                "cnt int) with (" +
                "'connector' = 'print')");
        resT.executeInsert("word_count");

i tried to add this vm options,then program is no longer reporting StackOverflowError, but it seems to be stuck in an infinite loop vm options: -Xss512m

Upvotes: 0

Views: 71

Answers (0)

Related Questions