我在Hive上运行spark sql。我需要在创建新的 Hive 表时添加自动清除表属性。我在调用 saveAsTable 方法时尝试了以下代码添加选项:
inputDF.write.option("auto.purge" -> "true").saveAsTable(hiveTableName)
上面的代码行在表的 WITH SERDEPROPERTIES 下添加了一个属性。我需要在 hive DDL 的 TBLPROPERTIES 部分下添加此属性。
最后我找到了一个解决方案,我不确定这是否是最好的解决方案。不幸的是,Spark 1.5 sql saveAsTable 方法不支持表属性作为输入。他们在创建配置单元表之前创建新的表属性映射。查看下面的代码:https://github.com/apache/spark/blob/v1.5.0/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala
若要将表属性添加到现有配置单元表,请使用更改表命令。
ALTER TABLE table_name SET TBLPROPERTIES ('auto.purge'='true');
上面的命令会将表属性添加到 hive 元存储。要将现有表拖放到加密区域内,请在删除命令之前运行上述命令。