java:sparkconf无法转换为sparkcontext

rekjcdws  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(399)

我试图用java中的spark创建一个简单的程序,但我得到了以下错误:
错误:(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);
    }
}

我有一台Windows8.1电脑,运行Java1.8和SparkV2.3.0。
为什么会出现这个错误?

o7jaxewo

o7jaxewo1#

不要使用sparkcontext。自spark 2.0以来,您应该使用sparksession,它同时涉及sparkcontext和sqlcontext。因此,您应该使用sparksession以这种方式指定配置:

SparkSession spark = SparkSession.builder()
  .config(config)
  .getOrCreate();

更简单的是,通过直接使用sparksession.builder对象指定属性,您完全忘记了sparkconfig对象:

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

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

sparkSession.sparkContext();

查看sparksession类的javadocs。
希望有帮助!:)

相关问题