我在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作业类示例?
答案 0 :(得分:0)
JavaSparkContext有转换为SparkContext
的方法,反之亦然,请查看方法JavaSparkContext.sc()
和JavaSparkContext.fromSparkContext()
。
答案 1 :(得分:0)
点击此处查看如何执行此操作的示例。 - &GT; Spark Job Server with Java