DataSetAPI之Transformation-cross。
cross:获取两个数据集的笛卡尔积。
1).scala实现
package com.simoniu.flink.scala.batch.transformation
import org.apache.flink.api.scala.ExecutionEnvironment
/**
* cross:获取两个数据集的笛卡尔积
* Created by simoniu
*/
object BatchCrossScalaDemo {
def main(args: Array[String]): Unit = {
val env = ExecutionEnvironment.getExecutionEnvironment
import org.apache.flink.api.scala._
//初始化第一份数据
val text1 = env.fromCollection(Array(1, 2, 3))
//初始化第二份数据
val text2 = env.fromCollection(Array("zhangsan", "lisi"))
//执行cross操作
text1.cross(text2).print()
}
}
运行结果:
(1,zhangsan)
(1,lisi)
(2,zhangsan)
(2,lisi)
(3,zhangsan)
(3,lisi)
2).java实现
package com.simoniu.flink.java.batch.transformation;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.operators.DataSource;
import java.util.Arrays;
/**
* cross:获取两个数据集的笛卡尔积
* Created by simoniu
*/
public class BatchCrossJavaDemo {
public static void main(String[] args) throws Exception {
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
//初始化第一份数据
DataSource<Integer> text1 = env.fromCollection(Arrays.asList(1, 2, 3));
//初始化第二份数据
DataSource<String> text2 = env.fromCollection(Arrays.asList("zhangsan", "lisi"));
//执行cross操作
text1.cross(text2).print();
}
}