I agree the structure could be improved and split into multiple pages.Hi Stu,there is only one page of documentation for the Table API and SQL [1].Regarding the flatting of a Pojo have a look at the "Built-In Functions" section [2].If you select "SQL" and head to the "Value access functions", you'll find
>tableName.compositeType.*
: Converts a Flink composite type (such as Tuple, POJO, etc.) and all of its direct subtypes into a flat representation where every subtype is a separate field.The following program works returns the correct result:// POJO definitionclass MyPojo(var x: Int, var y: Int) {
def this() = this(0, 0)
}// SQL queryval env = ExecutionEnvironment.getExecutionEnvironment
val tEnv = TableEnvironment.getTableEnvironment(env, config)
val ds = env.fromElements((0, new MyPojo(1, 2)), (1, new MyPojo(2, 3)), (2, new MyPojo(3, 4)) )
tEnv.registerDataSet("Pojos", ds, 'id, 'pojo)
val result = tEnv.sql("SELECT id, Pojos.pojo.* FROM Pojos") // you need to include the table name to flatten a Pojo
val results = result.toDataSet[Row].collect()
println(results.mkString("\n")) // Result
0,1,2
1,2,3
2,3,4Best, Fabian[1] https://ci.apache.org/projects/flink/flink-docs- release-1.2/dev/table_api.html
[2] https://ci.apache.org/projects/flink/flink-docs- release-1.2/dev/table_api. html#built-in-functions 2017-03-15 21:31 GMT+01:00 Stu Smith <[hidden email]>:The documentation seems to indicate that there is a flatten method available in the sql language interface (in the table of available methods), or, alternatively using the '*' character somehow (in the text above the table).Yet I cannot flatten a POJO type, nor can I find any sufficient documentation in the official docs, searching the mailing list via markmail, looking through the examples in the source, or looking for through the SQL tests in the source.Can someone point me to the correct location for some solid flink SQL examples and docs?Take care,-stu
Free forum by Nabble | Edit this page |