Published: 2019-09-15 22:10:00
tags: Flink
Flink数据类型支持
TypeInformation主要是为Flink系统内有效的对数据结构类型进行管理,
对数据的类型进行管理和推断
原生数据类型
复合类型
元组 tuple -Java和Scala
样例类 -Scala
POJOs类型
Flink Value类型 : org.apache.flink.types.Value
POJO类型
一个POJO类型:
1、class是public的且是独立的(不是非static内部类)The class is public and standalone (no non-static inner class)
2、class有public 无参构造函数
3、所有 class 中的
01.非静态的、非局部字段是private类型
02.或者非静态的、非局部字段是private类型,且public类型的getter和setter方法
4.字段类型须是Flink支持的
eg:本例中采用的是字段是private,且有public类型的getter和setter方法
public class Person implements Serializable {
private String name;
private int age;
/**
* public constructor to make it a Flink POJO
*/
public Person() {
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name= name;
}
public void setAge(int age) {
this.age= age;
}
@Override
public String toString() {
return "Person{" + "name=" + name + ", age='" + age + '\'' + '}';
}
}
在程序中的使用
//DataStream 造数据
Person userA = new Person();
userA.setName("Happy");
userA.setAge(19);
Person userB = new Person();
userB.setName("Lucky");
userB.setAge(20);
DataStream orderAStream = env.fromElements(
userB,