本文的话,我们介绍dataset数据集转换常用的project函数。
在开发中,有时候我们会给定一个数据集,例如:
张三 16 李四 17 王五 18
这个数据集代表的含义是用户的姓名和年龄,但是此时我们有这样一个需求,我们需要让年龄显示在前面,姓名显示在后面,也就是姓名和年龄换一个位置。此时我们就可以用到这个project函数了。
project函数是从新拟定位置,给出当前的索引即可,然后会返回一个新的数据集,下面我们用代码演示下,完整代码示例如下:
package org.example; import org.apache.flink.api.java.DataSet; import org.apache.flink.api.java.ExecutionEnvironment; import org.apache.flink.api.java.operators.DataSource; import org.apache.flink.api.java.tuple.Tuple2; import org.example.func.LineSplitter; import java.util.Arrays; public class ProjectFuncJob { public static void main(String[] args) throws Exception{ final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSource<Tuple2> datasources = env.fromCollection(Arrays.asList( new Tuple2("张三", "16"), new Tuple2("李四", "17"), new Tuple2("王五", "18") )); datasources.print(); datasources.project(1,0).print(); } }
这里可以看到我们使用了project函数,然后把元数据下标索引为1的数据放到新数据下标为0的位置,把元数据下标索引为0的数据放到新数据下标为1的位置。然后我们运行下:
总结:
1、project函数就是把原来的数据集调换一个位置而已,然后会返回一个新的数据集。
最后按照惯例,附上本案例的源码,登录后即可下载:
还没有评论,来说两句吧...