天天看點

What can be Streamed

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

這些工作正如您所期望的那樣。