我尝试在 Java 中使用 Spark 创建一个简单的程序,但出现此错误:
Error:(10, 57) java: incompatible types: org.apache.spark.SparkConf cannot be converted to 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。
为什么会出现此错误?
最佳答案
不要使用 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();
查看 javadocs for the SparkSession class .
希望对您有所帮助! :)
关于JAVA: SparkConf 无法转换为 SparkContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49152967/