Eu tenho um erro estranho, eu estou tentando gravar dados para a colmeia, ele funciona bem em spark-shell, mas enquanto eu estou usando spark-submit, jogando banco de dados / tabela não encontrada no erro padrão.
A seguir está a codificação que eu estou tentando escrever em spark-submit, estou usando custom build de spark 2.0.0
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
sqlContext.table("spark_schema.iris_ori")
A seguir está o comando que estou usando,
/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
A seguir está o erro
16/05/20 09:05:18 INFO SparkSqlParser: Comando de análise: spark_schema.measures_20160520090502 Exceção no thread "main" org.apache.spark.sql.AnalysisException: O banco de dados "spark_schema" não existe; em org.apache.spark.sql.catalyst.catalog.ExternalCatalog.requireDbExists (ExternalCatalog.scala: 37) em org.apache.spark.sql.catalyst.catalog.InMemoryCatalog.tableExists (InMemoryCatalog.scala: 195) em org.apache.spark.sql.catalyst.catalog.SessionCatalog.tableExists (SessionCatalog.scala: 360) em org.apache.spark.sql.DataFrameWriter.saveAsTable (DataFrameWriter.scala: 464) em org.apache.spark.sql.DataFrameWriter.saveAsTable (DataFrameWriter.scala: 458) na TreeClassifiersModels $ .main (TreeClassifiersModels.scala: 71) em TreeClassifiersModels.main (TreeClassifiersModels.scala) em sun.reflect.NativeMethodAccessorImpl.invoke0 (método nativo) em sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) em sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) em java.lang.reflect.Method.invoke (Method.java:497) em org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$ runMain (SparkSubmit.scala: 726) em org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1 (SparkSubmit.scala: 183) em org.apache.spark.deploy.SparkSubmit $ .submit (SparkSubmit.scala: 208) em org.apache.spark.deploy.SparkSubmit $ .main (SparkSubmit.scala: 122) em org.apache.spark.deploy.SparkSubmit.main (SparkSubmit.scala)
Respostas:
2 para resposta № 1O problema foi causado pela depreciação ocorrida no Spark Versão 2.0.0. O Contexto Hive foi descontinuado no Spark 2.0.0. Para ler / gravar tabelas do Hive no Spark 2.0.0, precisamos usar a sessão Spark da seguinte maneira.
val sparkSession = SparkSession.withHiveSupport(sc)