Java 使用纱线簇运行时如何在执行器内部获取SparkContext
我有一个驱动程序,我在其中创建JavaSparkContext,然后使用NewApiHadoop文件处理自定义InputFormat 如果我需要在CutomInput Format类中获取JavaSparKContext,我如何实现它 我的驱动程序:Java 使用纱线簇运行时如何在执行器内部获取SparkContext,java,apache-spark,mapreduce,yarn,rdd,Java,Apache Spark,Mapreduce,Yarn,Rdd,我有一个驱动程序,我在其中创建JavaSparkContext,然后使用NewApiHadoop文件处理自定义InputFormat 如果我需要在CutomInput Format类中获取JavaSparKContext,我如何实现它 我的驱动程序: > JavaSparkContext sc= //create the JavaSparkContext here > > JavaPairRDD<NullWritable, ArrayList<Record>
> JavaSparkContext sc= //create the JavaSparkContext here
>
> JavaPairRDD<NullWritable, ArrayList<Record>> baseRDD = sc.newAPIHadoopFile(args[2], InputFormat.class, NullWritable.class, ArrayList.class, conf);
>JavaSparkContext sc=//在此处创建JavaSparkContext
>
>javapairdd baseRDD=sc.newAPIHadoopFile(args[2],InputFormat.class,nullwriteable.class,ArrayList.class,conf);
自定义输入格式类:
> public class InputFormat extends FileInputFormat {
>
> @Override public RecordReader<NullWritable, ArrayList<Record>>
> createRecordReader(InputSplit split,TaskAttemptContext context) throws IOException,InterruptedException {
> final JavaSparkContext sc= //How to get the spark Context here
>公共类InputFormat扩展了FileInputFormat{
>
>@覆盖公共记录读取器
>createRecordReader(InputSplit split,TaskAttemptContext上下文)引发IOException,InterruptedException{
>final JavaSparkContext sc=//如何在此处获取spark上下文
只是想知道…为什么需要Hadoop输入格式的SparkContext?SparkContext是定义RDD并在执行器之间分发RDD的东西。它是Spark Master特定的实体。这就是为什么不能从RDD.map()中创建RDD的原因操作。所以,如果我理解你想做什么,答案似乎是:你就是做不到。好吧。这似乎是合理的。在这种情况下,我可以在InputFormat类中获取广播变量。我之前的qs对此进行了研究,如下所示。为什么你不能使用mapreduce/spark实现你的全部逻辑。我不这么认为nk您可以在输入格式中充分利用spark上下文。为什么我尝试获取SparkContext是为了在我的InputFormat类中获取BroadcastVariable。如果我使用API-newAPIHadoopFile,是否有任何方法可以在InputFormat中获取广播变量。只是想知道…为什么您需要Hadoop输入格式的SparkContext?SparkContext是在执行者之间定义和分发RDD的内容。它是Spark Master特定的实体。这就是为什么不能从RDD.map()中创建RDD的原因操作。所以,如果我理解你想做什么,答案似乎是:你就是做不到。好吧。这似乎是合理的。在这种情况下,我可以在InputFormat类中获取广播变量。我之前的qs对此进行了研究,如下所示。为什么你不能使用mapreduce/spark实现你的全部逻辑。我不这么认为nk您可以在输入格式中充分利用spark上下文。我之所以尝试获取SparkContext是为了在我的InputFormat类中获取BroadcastVariable。如果我使用API-NewApiHadoop文件,是否有任何方法可以在InputFormat中获取广播变量。