将数据帧保存为外部配置单元表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将数据帧保存为外部配置单元表相关的知识,希望对你有一定的参考价值。
我曾使用一种方法将数据帧保存为使用镶木地板文件格式的外部表,但是还有其他方法可以将数据帧直接保存为hive中的外部表,就像我们为托管表保存了saveAsTable一样
你可以这样做
df.write.format(“ORC”)。options(Map(“path” - >“yourpath”))saveAsTable“anubhav”
对于外部表,请不要使用saveAsTable
。而是将数据保存在path
指定的外部表的位置。然后添加分区,以便使用hive元数据进行注册。这将允许您稍后通过分区进行查询。
// hc is HiveContext, df is DataFrame.
df.write.mode(SaveMode.Overwrite).parquet(path)
val sql =
s"""
|alter table $targetTable
|add if not exists partition
|(year=$year,month=$month)
|location "$path"
""".stripMargin
hc.sql(sql)
您还可以使用手动创建表保存数据框
dataframe.registerTempTable("temp_table");
hiveSqlContext.sql("create external table
table_name if not exist as select * from temp_table");
下面提到的链接有一个很好的解释创建表https://docs.databricks.com/spark/latest/spark-sql/language-manual/create-table.html
以上是关于将数据帧保存为外部配置单元表的主要内容,如果未能解决你的问题,请参考以下文章