将数据帧保存为外部配置单元表

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

以上是关于将数据帧保存为外部配置单元表的主要内容,如果未能解决你的问题,请参考以下文章

无法从引发 serde 异常的 spark 将数据帧保存为配置单元表

将 Spark 数据帧保存为 Hive 中的动态分区表

镶木地板上的配置单元外部表未获取数据

avro时间戳字段上的配置单元外部表返回一样长

将大量 Spark 数据帧合并为一个

PySpark - 遍历每一行数据帧并运行配置单元查询