flink-user-zh mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Zhenghua Gao <doc...@gmail.com>
Subject Re: Flink tableApi 按列排序,只能按一列,不能按多列排序吗?
Date Mon, 18 Mar 2019 06:47:12 GMT
Try:

xx.orderBy('id.desc, 'value1.asc)


*Best Regards,*
*Zhenghua Gao*


On Sat, Mar 16, 2019 at 10:28 AM 刘 文 <thinktothings@yahoo.com.invalid>
wrote:

>
> 输出结果,只按id降序排序,没有按value1升序排序。
>
>
>
>
>
>
>
> package
> com.opensourceteams.module.bigdata.flink.example.tableapi.operation.orderBy
>
> 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)
>
>     env.setParallelism(1)
>
>     val dataSet = env.fromElements( (1,"a",10),(2,"b",20)
> ,(20,"f",200),(3,"c",30) )
>
>
>
>     //从dataset转化为 table
>     val table = tableEnv.fromDataSet(dataSet)
>
>     //注册table
>     tableEnv.registerTable("user1",table)
>
>
>     //查询table 所有数据
>     tableEnv.scan("user1").as('id,'name,'value1)
>       //.orderBy('id.asc)  //按id列,升序排序(注意是按分区来排序)
>       .orderBy('id.desc)
>       .orderBy('value1.asc)
>
>       .first(1000)
>
>       //print 输出 (相当于sink)
>       .print()
>
>
>     /**
>       * 输出结果
>       *
>       * 20,f,200
>       * 3,c,30
>       * 2,b,20
>       * 1,a,10
>       */
>
>
>
>   }
>
> }
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message