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



我使用了一种使用镶木地板文件格式将数据帧另存为外部表的方法,但是有没有其他方法可以将数据帧直接保存为hive中的外部表,就像我们为托管表保存AsTable

一样

你可以这样做到这一点

df.write.format("ORC").options(Map("path"-> "yourpath")) saveAsTable "anubhav"

PySpark 中,可以按如下方式创建外部表:

df.write.option('path','<External Table Path>').saveAsTable('<Table Name>')

对于外部表,不要使用 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 有一个很好的解释

相关内容

  • 没有找到相关文章

最新更新