Ich habe einen seltsamen Fehler, ich versuche, Daten zu Bienenstock schreiben, es funktioniert gut in Spark-Shell, aber während ich Spark-submit, es werfen Datenbank / Tabelle nicht im Standardfehler gefunden.
Nachstehend ist die Codierung, die ich versuche, in Spark-Submit zu schreiben, ich benutze Custom Build von Spark 2.0.0
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
sqlContext.table("spark_schema.iris_ori")
Folgendes ist der Befehl, den ich verwende,
/home/ec2-user/Spark_Source_Code/spark/bin/spark-submit --class TreeClassifiersModels --master local[*] /home/ec2-user/Spark_Snapshots/Spark_2.6/TreeClassifiersModels/target/scala-2.11/treeclassifiersmodels_2.11-1.0.3.jar /user/ec2-user/Input_Files/defPath/iris_spark SPECIES~LBL+PETAL_LENGTH+PETAL_WIDTH RAN_FOREST 0.7 123 12
Folgendes ist der Fehler,
16/05/20 09:05:18 INFO SparkSqlParser: Parsing-Befehl: spark_schema.measures_20160520090502 Ausnahme im Thread "main" org.apache.spark.sql.AnalysisException: Datenbank "spark_schema" existiert nicht; bei org.apache.spark.sql.catalyst.catalog.ExternalCatalog.requireDbExists (ExternalCatalog.scala: 37) bei org.apache.spark.sql.catalyst.catalog.InMemoryCatalog.tableExists (InMemoryCatalog.scala: 195) bei org.apache.spark.sql.catalyst.catalog.SessionCatalog.tableExists (SessionCatalog.scala: 360) bei org.apache.spark.sql.DataFrameWriter.saveAsTable (DataFrameWriter.scala: 464) bei org.apache.spark.sql.DataFrameWriter.saveAsTable (DataFrameWriter.scala: 458) bei TreeClassifiersModels $ .main (TreeClassifiersModels.scala: 71) bei TreeClassifiersModels.main (TreeClassifiersModels.scala) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Methode) bei sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) bei sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) bei java.lang.reflect.Method.invoke (Methode.java:497) at org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$ runMain (SparkSubmit.scala: 726) bei org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1 (SparkSubmit.scala: 183) bei org.apache.spark.deploy.SparkSubmit $ .submit (SparkSubmit.scala: 208) bei org.apache.spark.deploy.SparkSubmit $ .main (SparkSubmit.scala: 122) unter org.apache.spark.deploy.SparkSubmit.main (SparkSubmit.scala)
Antworten:
2 für die Antwort № 1Das Problem war aufgrund der Abwertung bei Spark Version 2.0.0 aufgetreten. Der Hive-Kontext wurde in Spark 2.0.0 nicht weiter unterstützt. Um Hive-Tabellen in Spark 2.0.0 lesen / schreiben zu können, müssen wir die Spark-Sitzung wie folgt verwenden.
val sparkSession = SparkSession.withHiveSupport(sc)