如何在Java Project中使用spark-job服务器?

时间:2015-01-16 09:42:55

标签: apache-spark

我在java项目中使用spark。 我尝试使用spark-jobserver作为我们的web服务。但面临很多困难。 是否有使用spark-job服务器的示例java项目?

我的问题: 似乎只需要在我们的java类中实现SparkJob并覆盖runJob方法。 但我发现在runJob方法中,sparkcontext类型是SparkContext,而不是我们在java项目中使用的JavaSparkContext。

public Object runJob(SparkContext sparkcontext, Config config) {
    // TODO Auto-generated method stub
    return null;
}

所以我在我们的工作类中将JavaSparkContext更改为SparkContext。但我遇到了另一个编译问题。 请帮忙纠正我。感谢

改变之前

JavaPairRDD<String, Row> pairData;

.................
JavaSchemaRDD schemaRDD = sqlContext.applySchema(pairData.values(), schema);

更改后

// because we I need to use SparkContext, so I changed JavaPairRDD<String, Row> to  RDD<Tuple2<String, Row>>.

RDD<Tuple2<String, Row>> pairData;
...............................


// I can't use pairData.values(), So I transform pairData to rowRDD


RDD<Row> rowRDD = pairData .map(new Function<Tuple2<String, Row>, Row>() {
 public Row call(Tuple2<String, Row> re)
 throws Exception {
 return re._2();
 }

  });

但我发现.map方法存在编译错误。此外我发现如果在我们的作业类中将JavaSparkContext更改为SparkContext,我们就不能在包org.apache.spark.sql.api.java下使用任何类。 是否有java作业类示例?

2 个答案:

答案 0 :(得分:0)

JavaSparkContext有转换为SparkContext的方法,反之亦然,请查看方法JavaSparkContext.sc()JavaSparkContext.fromSparkContext()

答案 1 :(得分:0)

点击此处查看如何执行此操作的示例。 - &GT; Spark Job Server with Java