我有一个使用 Spark 2.3 API 创建的 Hive Parquet 表df.saveAstable
。有一个单独的 Hive 进程可以更改同一个 parquet 表以添加列(根据要求)。但是,下次当我尝试将同一个 parquet 表读入 Spark 数据帧时,使用 Hive Alter Table 命令添加到 parquet 表中的新列未显示在df.printSchema
输出中。
根据初步分析,似乎可能存在一些冲突,Spark 使用自己的架构而不是读取 Hive 元存储。因此,我尝试了以下选项:
更改火花设置:
spark.sql.hive.convertMetastoreParquet=false
和刷新火花目录:
spark.catalog.refreshTable("table_name")
但是,以上两个选项都不能解决问题。
任何建议或替代方案都会非常有帮助。