What can be Streamed
Flink用于Java和Scala的DataStream APIs将允許傳輸他們可以序列化的任何内容。
Flink的序列化器用于:
- 簡單類型:String,Long,integer,Boolean,Array
- 複合類型:Tuples,POJOs,Scala case classes
而Flink對于其他類型則回歸于Kryo。
Java
Tuples
對于Java而言,Flink定義了Tuple1到Tuple25類型。
Tuple2<String, Integer> person = new Tuple2<>("Fred", 35);
// zero based index!
String name = person.f0;
Integer age = person.f1
POJOs
一個POJOs(普通的舊Java對象)是任何Java類:
- 有一個空的預設構造函數
- 所有域都是以下之一:
- public
- 有一個預設的getter和setter
例如:
public class Person {
public String name;
public Integer age;
public Person() {};
public Person(String name, Integer age) {
...
};
}
Person person = new Person("Fred Flintstone", 35);
Scala tuples和 case classes
這些工作正如您所期望的那樣。