微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flink支持的数据类型

5.4.1 基础数据类型

Flink支持所有的Java和Scala基础数据类型,Int, Double, Long, String, …

DataStream<Integer> numberStream = env.fromElements(1, 2, 3, 4);
numberStream.map(data -> data * 2);

5.4.2 Java和Scala元组(Tuples)

java不像Scala天生支持元组Tuple类型,java的元组类型由Flink的包提供,认提供Tuple0~Tuple25

DataStream<Tuple2<String, Integer>> personStream = env.fromElements( 
  new Tuple2("Adam", 17), 
  new Tuple2("Sarah", 23) 
); 
personStream.filter(p -> p.f1 > 18);

5.4.3 Scala样例类(case classes)

case class Person(name:String,age:Int)
​
val numbers: DataStream[(String,Integer)] = env.fromElements(
  Person("张三",12),
  Person("李四",23)
)

5.4.4 Java简单对象(POJO)

java的POJO这里要求必须提供无参构造函数

  • 成员变量要求都是public(或者private但是提供get、set方法

public class Person{
  public String name;
  public int age;
  public Person() {}
  public Person( String name , int age) {
    this.name = name;
    this.age = age;
  }
}
DataStream Pe rson > persons = env.fromElements(
  new Person (" Alex", 42),
  new Person (" Wendy",23)
);

5.4.5 其他(Arrays, Lists, Maps, Enums,等等)

Flink对Java和Scala中的一些特殊目的的类型也都是支持的,比如Java的ArrayList,HashMap,Enum等等。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐