Snažím sa vytvoriť jednoduchý program pomocou programu Spark v Jave a dostanem túto chybu:
Chyba: (10, 57) java: nekompatibilné typy: org.apache.spark.SparkConf nie je možné previesť na org.apache.spark.SparkContext
Môj kód:
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);
}
}
Mám počítač so systémom Windows 8.1, na ktorom pracujem Java 1.8 a Spark v 2.3.0.
Prečo sa mi táto chyba vyskytla?
odpovede:
1 pre odpoveď č. 1Nepoužívajte SparkContext. Od verzie Spark 2.0 by ste mali používať program SparkSession, ktorý zahŕňa SparkContext aj SQLContext. Svoju konfiguráciu by ste preto mali špecifikovať pomocou programu SparkSession:
SparkSession spark = SparkSession.builder()
.config(config)
.getOrCreate();
Alebo ešte jednoduchšie úplne zabudnete na objekt SparkConfig zadaním vlastností priamo s objektom SparkSession.Builder:
SparkSession spark = SparkSession.builder()
.master("local[*]")
.appName("Lab")
.getOrCreate();
A samozrejme, ak skutočne chcete objekt SparkContext, môžete to urobiť:
sparkSession.sparkContext();
Pozrite sa na stránku javadocs pre triedu SparkSession.
Dúfam, že to pomôže! :)