package org.apache.pig.backend.hadoop.executionengine.spark.converter;
import java.io.IOException;
import java.util.List;
import org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator;
import org.apache.spark.rdd.RDD;
/**
* Given an RDD and a PhysicalOperater, and implementation of this class can convert the RDD to
* another RDD.
*
* @author billg
*/
public interface POConverter<IN, OUT, T extends PhysicalOperator> {
/**
*
* @param rdd 依赖的祖先RDDs(由前驱物理执行计划计算结果连成)
* @param physicalOperator 本次需要转化的物理操作
* @return 返回的是该物理操作对应的计算结果RDD
* @throws IOException
*/
RDD<OUT> convert(List<RDD<IN>> rdd, T physicalOperator) throws IOException;
}