JAVA: SparkConf 无法转换为 SparkContext

标签 java hadoop apache-spark

我尝试在 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/

相关文章:

java - 自动从appium获取设备参数

hadoop - PIG 脚本 : reducer preempted to make room for pending map attempts

java - 我可以将 NativeFileSystemStore 作为插件提供给 Hadoop 吗?

sql - 无法从Spark读取hadoop/hive外部S3表

java - 尽管所有测试都通过了,Intellij 报告断言失败

java - Hibernate 批量更新 - 实体未更新

java - 如何从设备读取和写入超大数据

algorithm - Spark 发现时间戳中的差距

apache-spark - 为什么我们不能使用 Spark session 创建 RDD

java - Do-while 语句 Java