Spark SaveAsTable 元数据更新慢
Posted
技术标签:
【中文标题】Spark SaveAsTable 元数据更新慢【英文标题】:Spark SaveAsTable Metadata update slow 【发布时间】:2021-12-11 01:31:10 【问题描述】:我正在使用 saveAsTable 在 Spark 中保存一个表,表由两列分区,每个目录作为一个文件。 /part-value1/part2-value-1/part-0000.parquet 和 /part-value1/part2-value-2/part-0000.parquet。 PART1 有 80 个分区,PART2 有 200 个,所以总共有 16K 个分区。表已在 HDFS 中创建,但看起来更新配置单元元存储需要时间。有什么方法可以加快这个过程?
【问题讨论】:
【参考方案1】:您可以尝试以下任何命令,
ALTER TABLE table_name RECOVER PARTITIONS - 这比 referh 快
REFRESH table_name - 刷新特定分区选项可用
INVALIDATE METADATA 表名
【讨论】:
这是火花工作,不是黑斑羚。此外,Spark df.saveAsTable 需要时间来更新元存储 在你编写代码之后添加这个。 spark.catalog.recoverPartitions(tableName) 谢谢,但不确定它会有什么帮助,因为 df.saveAsTable 在文件写入 hdfs 后会一直运行。当我看到 Spark UI SQL 表时,所有作业 ID 都已完成,但作业仍在运行。我在想 Hive Metastore 正在更新。 如果不是,您可以在代码的最后一个块中使用 spark.stop() 并检查。以上是关于Spark SaveAsTable 元数据更新慢的主要内容,如果未能解决你的问题,请参考以下文章
Spark:可以使用 DataFrame.saveAsTable 或 DataFrameWriter.options 传递哪些选项?