You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@flink.apache.org by 刘 文 <th...@yahoo.com> on 2019/03/15 13:03:27 UTC

flink tableapi inner join exception

Exception in thread "main" org.apache.flink.table.api.ValidationException: join relations with ambiguous names: id, name, value
	at org.apache.flink.table.plan.logical.LogicalNode.failValidation(LogicalNode.scala:156)
	at org.apache.flink.table.plan.logical.Join.validate(operators.scala:463)
	at org.apache.flink.table.api.Table.join(table.scala:589)
	at org.apache.flink.table.api.Table.join(table.scala:397)
	at com.opensourceteams.module.bigdata.flink.example.tableapi.operation.innerJoin.Run$.main(Run.scala:26)
	at com.opensourceteams.module.bigdata.flink.example.tableapi.operation.innerJoin.Run.main(Run.scala)



————————————————————————————————————————————————————


package com.opensourceteams.module.bigdata.flink.example.tableapi.operation.innerJoin

import org.apache.flink.api.scala.{ExecutionEnvironment, _}
import org.apache.flink.table.api.TableEnvironment
import org.apache.flink.table.api.scala._

object Run {


  def main(args: Array[String]): Unit = {

    val env = ExecutionEnvironment.getExecutionEnvironment
    val tableEnv = TableEnvironment.getTableEnvironment(env)

    val dataSet = env.fromElements( (1,"a",10),(2,"b",20), (3,"c",30) )
    val dataSet2 = env.fromElements( (1,"a",10),(20,"b",20), (30,"c",30) )



    //从dataset转化为 table
    val table = tableEnv.fromDataSet(dataSet,'id,'name,'value)
    val table2 = tableEnv.fromDataSet(dataSet2,'id,'name,'value)



   table.join(table2).where(" id = id ").first(1000).print()






  }

}






Best,
thinktothings




Re: flink tableapi inner join exception

Posted by Xingcan Cui <xi...@gmail.com>.
Hi,

As the message said, some columns share the same names. You could first rename the columns of one table with the `as` operation [1].

Best,
Xingcan

[1] https://ci.apache.org/projects/flink/flink-docs-master/dev/table/tableApi.html#scan-projection-and-filter 

> On Mar 15, 2019, at 9:03 AM, 刘 文 <th...@yahoo.com> wrote:
> 
> Exception in thread "main" org.apache.flink.table.api.ValidationException: join relations with ambiguous names: id, name, value
> 	at org.apache.flink.table.plan.logical.LogicalNode.failValidation(LogicalNode.scala:156)
> 	at org.apache.flink.table.plan.logical.Join.validate(operators.scala:463)
> 	at org.apache.flink.table.api.Table.join(table.scala:589)
> 	at org.apache.flink.table.api.Table.join(table.scala:397)
> 	at com.opensourceteams.module.bigdata.flink.example.tableapi.operation.innerJoin.Run$.main(Run.scala:26)
> 	at com.opensourceteams.module.bigdata.flink.example.tableapi.operation.innerJoin.Run.main(Run.scala)
> 
> 
> 
> ————————————————————————————————————————————————————
> 
> 
> package com.opensourceteams.module.bigdata.flink.example.tableapi.operation.innerJoin
> 
> import org.apache.flink.api.scala.{ExecutionEnvironment, _}
> import org.apache.flink.table.api.TableEnvironment
> import org.apache.flink.table.api.scala._
> 
> object Run {
> 
> 
>   def main(args: Array[String]): Unit = {
> 
>     val env = ExecutionEnvironment.getExecutionEnvironment
>     val tableEnv = TableEnvironment.getTableEnvironment(env)
> 
>     val dataSet = env.fromElements( (1,"a",10),(2,"b",20), (3,"c",30) )
>     val dataSet2 = env.fromElements( (1,"a",10),(20,"b",20), (30,"c",30) )
> 
> 
> 
>     //从dataset转化为 table
>     val table = tableEnv.fromDataSet(dataSet,'id,'name,'value)
>     val table2 = tableEnv.fromDataSet(dataSet2,'id,'name,'value)
> 
> 
> 
>    table.join(table2).where(" id = id ").first(1000).print()
> 
> 
> 
> 
> 
> 
>   }
> 
> }
> 
> 
> 
> 
> 
> 
> Best,
> thinktothings
> 
> 
>