天天看点

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

这些工作正如您所期望的那样。