如何在Maven的Spark Java程序中访问Hive的Metastore?

时间:2018-09-30 09:46:02

标签: apache-spark hive apache-spark-sql

我用Java编写了一个maven项目,以使用spark存储一些配置单元表。这些表和元变量位于我的Eclipse工作区的spark-warehousemetastore_db目录中。 spark-warehousemetastore_db的位置是/Users/username/workspace/Spark-Hive/load/spark-warehouse/Users/username/workspace/Spark-Hive/load/metastore_db

我编写了另一个Maven项目,使用以下Spark会话访问这些配置单元表:

    String warehouseLocation = "/Users/username/workspace/Spark-Hive/load/spark-warehouse";
        SparkSession spark = SparkSession.builder()
                .appName("Load")
                .master("local[*]")
                .config("spark.sql.warehouse.dir", warehouseLocation)
//      .config("hive.metastore.warehouse.dir","/Users/username/workspace/Spark-Hive/load/metastore_db")
            .enableHiveSupport()
            .getOrCreate();

我可以从编写加载表的第一个Maven项目访问那些表,但无法从第二个Maven项目访问这些表。我也将hive metastore的路径提供给第二个程序,但是没有用。如何使用Maven项目在Eclipse中访问这些配置单元表?

1 个答案:

答案 0 :(得分:1)

通过以下方式提供spark-warehouse路径:

String warehouseLocation = new File("/Users/username/workspace/Spark-Hive/load/spark-warehouse").getAbsolutePath();