在编写spark程序时可能会需要调用已经写好的程序,而有时该外部程序的源码适用的语言可能并不适用于spark或者可能拿不到程序的源码,这时候就会需要进行外部程序的调用。
这里我们以spark的java独立应用调用hspice为例说明整个调用过程。
下面是调用hspice的java类
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.io.*;
import org.apache.spark.SparkConf;
import org.apache.spark.SparkFiles;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
public class Toolcall {
public void h_invoke(ArrayList<String> data_line) //data_line为后续调用hspice时需要用到的扫描数据
//h_invoke方法接受外部传入的hspice需要的使用的扫描数据
{
//initial spark,详见spark java程序入门(一)
SparkConf conf = new SparkConf().setMaster("local[*]").setAppName("hspicecall").set("spark.testing.memory","2147480000");
JavaSparkContext sc =