赞
踩
示例1:
在flink中,Tuple表示元组,在说明元组之前,我们先使用JSON来表达一个对象,很明显,下面的JSON格式表达了一个人的姓名和出生日期
{
"name":"小雅川",
"birthday":0312
}
如果不使用JSON格式来表达,而是使用Tuple的形式来表达一个人的姓名和出生日期,那么toString()方法之后会打印出如下字符串,这种Tuple,叫做Tuple2,2表示该Tuple中有两个值
("小雅川",0312)
上面少了很多内容,而直接存放了我们需要的值,虽然这样可读性很差,但程序是我们自己写的,我们理所应当知道第1个值"小雅川"是什么意思,我们也应当知道第二个值0312是什么意思,Tuple的数据结构很简洁,比较适合分布式计算框架,当然,也牺牲了可读性
示例2:
如果我们的JSON格式增加了一个address
,那么JSON格式是下面这样的
{
"name":"小雅川",
"birthday":0312,
"address":"武汉"
}
使用Tuple来表达上面的对象,是下面这样子的,这种Tuple,叫做Tuple3,3表示该Tuple中有三个值
("小雅川",0312,"武汉")
Tuple抽象类
flink中的Tuple是一个抽象类,签名如下,它有26个子类,分别是Tuple0到Tuple25
public abstract class Tuple implements java.io.Serializable
如果我们自己要创建一个Tuple,可以使用Tuple.newInstance(元组大小)
来创建,例如下面的例子是创建一个Tuple3的例子
import org.apache.flink.api.java.tuple.Tuple;
public class TestMain {
public static void main(String[] args) {
Tuple tuple = Tuple.newInstance(3);// 这个tuple其实是Tuple3
tuple.setField("小雅川",0);
tuple.setField("0312",1);
tuple.setField("武汉",2);
System.out.println((Object) tuple.getField(0));//小雅川
System.out.println((Object) tuple.getField(1));//0312
System.out.println((Object) tuple.getField(2));//武汉
System.out.println(tuple);//(小雅川,0312,武汉)
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。