带有Hive MetaStore 3的Apache Spark(2.4.2)

时间:2019-05-22 08:28:08

标签: apache-spark hive presto metastore hive-metastore

我正在尝试将Spark 2.4连接到Hive Metastore 3,以对S3上的ORC文件进行分类。

火花配置:

   sparkConf
                .set("spark.sql.catalogImplementation", "hive")
                .set("hive.metastore.uris", thrift://metastore:9083)
                .set("spark.sql.warehouse.dir", "s3:/data")

火花代码:

input
            .write()
            .mode(SaveMode.Overwrite)
            .format("orc")
            .option("path", "s3:/data/table")
            .saveAsTable("table");

Spark可以连接并在metastore中创建表,但是创建不正确。

这是目录中的表模式:

 CREATE TABLE hive.default.table (
col array(varchar),
 date integer

)  WITH (
  external_location = 'file:/user/hive/warehouse/table-__PLACEHOLDER__',
 format = 'SEQUENCEFILE',
 partitioned_by = ARRAY['date']
 )

external_location是错误的,没有明确的架构(列),并且表format是错误的。

我也收到此警告,我不确定它是否与问题有关:

Could not persist default.table in a Hive compatible way. Persisting it into Hive metastore in Spark SQL specific format.

有人能够以这种方式使用Metastore 3吗?

我熟悉https://stackoverflow.com/a/53065525/3276980,更喜欢使用saveAsTable

0 个答案:

没有答案