← 返回首页
Transformation-cross
发表时间:2023-11-25 16:27:35
DataSetAPI之Transformation-cross

DataSetAPI之Transformation-cross。

1.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();
    }
}