如何在HDP 3.1中以外部形式在Hive中触发写入(创建)表

时间:2019-10-16 15:19:59

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

默认

spark-shell --conf spark.hadoop.metastore.catalog.default=hive
val df:Dataframe = ...
df.write.saveAsTable("db.table") 

尝试写入内部/托管/事务表时失败(请参见How to write a table to hive from spark without using the warehouse connector in HDP 3.1)。

如何告诉Spark不创建托管表,而是创建外部表?

1 个答案:

答案 0 :(得分:0)

就目前而言,默认情况下禁用事务表对我来说似乎是最佳选择。

在Ambari内部,仅禁用默认情况下创建事务表的选项即可解决我的问题。

两次设置为false(tez,lap)

hive.strict.managed.tables = false

,并根据需要在每个table property中手动启用(以使用事务表)。

作为解决方法,也可以选择使用手动CTAS。