Fail to enable hive support in Spark submit (spark 3)

Viewed 709

I am using spark in an integration test suite. It has to run locally and read/write files to local file-system. I also want to read/write these data as tables.

In the first step of the suite I write some hive tables in the db feature_store specifying
spark.sql.warehouse.dir=/opt/spark/work-dir/warehouse. The step completes correctly and I see the files in the folder I expect.

Afterwards I run a spark-submit step with (among others) these confs

--conf spark.sql.warehouse.dir=/opt/spark/work-dir/warehouse --conf spark.sql.catalogImplementation=hive

and when trying to read a table previously written I get

 Exception in thread "main" org.apache.spark.sql.catalyst.analysis.NoSuchDatabaseException: Database 'feature_store' not found

However if I try to do exactly the same thing with exactly the same configs in a spark-shell I am able to read the data.

In the spark-submit I use the following code to get the spark-session

SparkSession spark = SparkSession.active();

I have also tried to use instead

SparkSession spark = SparkSession.builder().enableHiveSupport().getOrCreate();

but I keep getting the same problem as above.

I have understood that the problem is related to the spark-submit not picking up hive as catalog implementation. In fact I see that the class spark.catalog is not an instance of HiveCatalogImpl during the spark-submit (while it is when using spark-shell).

0 Answers
Related