JAVA:SparkConf无法转换为SparkContext

时间:2018-03-07 13:19:03

标签: java hadoop apache-spark

我尝试使用Spark in Java创建一个简单的程序,我收到了这个错误:

  

错误:(10,57)java:不兼容的类型:org.apache.spark.SparkConf无法转换为org.apache.spark.SparkContext

我的代码:

package com.example.lab;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;

public class Lab {
    public static void main(String[] args) {

            SparkConf config = new SparkConf();
            config.setMaster("local[*]").setAppName("Lab");
            JavaSparkContext jsc = new JavaSparkContext(config);
    }
}

我有一台Windows 8.1 PC,运行Java 1.8和Spark v 2.3.0。

为什么我会收到此错误?

1 个答案:

答案 0 :(得分:1)

不要使用SparkContext。从Spark 2.0开始,您应该使用SparkSession,它涉及SparkContext和SQLContext。因此,您应该使用SparkSession以这种方式指定配置:

SparkSession spark = SparkSession.builder()
  .master("local[*]")
  .appName("Lab")
  .getOrCreate();

甚至更简单,您完全忘记了SparkConfig对象,通过直接使用SparkSession.Builder对象指定属性:

sparkSession.sparkContext();

当然,如果你真的想要一个SparkContext对象,你可以这样做:

{{1}}

查看javadocs for the SparkSession class

希望它有所帮助! :)