Flink初次练习(Transformation)

Flink的官网:https://flink.apache.org/
使用的软件:IntelliJ IDEA Community Edition
CoreAPI:

  • DataSet:专门处理离线数据,给离线数据处理设计了更多有针对性的API. env:ExecutionEnvironment
  • DataStream:一般用于处理流式数据,也可以处理离线数据env:StreamExecutionEnvironment

创建TransformationTest文件

练习一

将输入的数字均乘10

需要注意的点:

  • 与之前那篇博客一样,很多代码不需要手敲,使用快捷键非常方便
  • 着重要注意的是第三步,敲完”source.map(new M”后直接回车,能跳出”source.map(new MapFunction“,括号中的”Integer”分别代表输入和输出值的类型,第一个之所以是Int是因为第二步中”source”就已经定义了是int,但是输出它不知道你需要什么,所以是”object”(注意第一个Integer有个蓝框)我们需要输入和输出都是int,所以先回车,将蓝框跳到”Object”,输入”Integer”,之后直接回车,下面的两行会直接跳出来,不需要手打(跳出下面两行不止一种方法,这一种感觉比较方便)

练习二

将字符串转化成 int 输出

需要注意的点:

  • 我输入字符串时,每个数字的间隔是“, ”,除了逗号外还有空格,所以在第三步split将字符串拆开时也需要加个空格

练习三

每个数字累计求和

与练习二相比只在第三步底下增加了一点,其他不变,输出为15

练习四

将文件中的内容变成Tuple

package cn.tedu.dataset;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.common.functions.ReduceFunction;import org.apache.flink.api.java.ExecutionEnvironment;import org.apache.flink.api.java.operators.DataSource;import org.apache.flink.api.java.tuple.Tuple;import org.apache.flink.api.java.tuple.Tuple3;import org.apache.flink.util.Collector;public class TransformationTest {    public static void main(String[] args) throws Exception {//1.获取执行环境ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();//获取数据源DataSourceString> source = env.readTextFile("data.txt"); //输入的是字符串//3.转化数据//a.转化为Tuple3(数字代表长度,data.txt中每行有三个数据)source.map(new MapFunctionString, Tuple3String,String,String>>() {    @Override    public Tuple3String, String, String> map(String value) throws Exception { String[] split = value.split(","); return new Tuple3(split[0],split[1],split[2]);来源:月与露西亚
                                                        

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月7日
下一篇 2020年10月7日

相关推荐