Otrzymuję ten błąd, gdy próbuję uruchomić ten kod.Jak utworzyć SparkSession z obsługą Hive (kończy się niepowodzeniem z "nie znaleziono klas Hive")?
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
public class App
{
public static void main(String[] args) throws Exception {
String warehouseLocation = "file:" + System.getProperty("user.dir") + "spark-warehouse";
SparkSession spark = SparkSession
.builder().master("local")
.appName("Java Spark Hive Example")
.config("spark.sql.warehouse.dir", warehouseLocation).enableHiveSupport()
.getOrCreate();
String path = "/home/cloudera/Downloads/NetBeansProjects/sparksql1/src/test/Employee.json";
spark.sql("CREATE TABLE IF NOT EXISTS src (key INT, value STRING)");
spark.sql("LOAD DATA LOCAL INPATH '"+path+"' INTO TABLE src");
//load from HDFS
Dataset<Row> df = spark.read().json(path);
df.registerTempTable("temp_table");
spark.sql("create table TEST.employee as select * from temp_table");
df.printSchema();
df.show();
}
}
wyjściowa:
Wyjątek w wątku "głównym" java.lang.IllegalArgumentException: Nie można utworzyć wystąpienia SparkSession z Hive wsparcia, ponieważ zajęcia Hive nie występują. na org.apache.spark.sql.SparkSession $ Builder.enableHiveSupport (SparkSession.scala: 778) w com.training.hivetest.App.main (App.java:21)
Jak to może być zdecydowany?
mam zapłonie hive_2.11-2.0.1 .jar, ale nadal dostaję błąd (po prostu ręcznie dodałem słoik do ścieżki klasy - nie dodałem zależności do Mavena) –
@ Sam-T Czy jesteś w stanie zaimportować "org.apache.spark.sql.hive. *; " w twojej klasie java? Czy próbowałeś dodać go do maven, a następnie zaktualizować projekt maven? – abaghel