【发布时间】:2020-02-13 10:27:29
【问题描述】:
默认
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 不创建托管表,而是创建外部表?
【问题讨论】:
-
您是否尝试将 DataFrame 映射为 SQL“TempView”,然后运行诸如
CREATE EXTERNAL TABLE ... AS SELECT ...之类的 SQL 命令? -
有没有办法为具有数百列的数据框自动执行此操作?我不确定是否会自动将 spark 类型映射到 hive 类型。
-
SELECT *自 SQL 诞生之初就已经存在...我希望 Hive 和 Spark 支持这样一个基本功能。 -
也可以指定Hive ACID不支持的文件格式,比如Parquet。
-
但是我不必先为创建表指定一个模式作为选择吗?还有我不确定映射类型。
标签: apache-spark hive apache-spark-sql cloudera hdp