将dataframe另存为外部配置单元表

cczfrluj  于 2021-06-29  发布在  Hive
关注(0)|答案(4)|浏览(591)

我使用了一种方法来使用parquet文件格式将dataframe保存为外部表,但是是否有其他方法可以像saveastable for managed table那样直接将dataframe保存为配置单元中的外部表

tct7dpnv

tct7dpnv1#

你可以这样做
df.write.format(“orc”).options(map(“path”->“yourpath”))saveastable“anubhav”

mec1mxoz

mec1mxoz2#

在pyspark中,可以如下创建外部表:

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

hpcdzsge3#

对于外部表,不要使用 saveAsTable . 而是将数据保存在 path . 然后添加分区,以便用配置单元元数据注册它。这将允许您稍后按分区进行配置单元查询。 // 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)

lztngnrs

lztngnrs4#

您还可以使用手动创建表来保存Dataframe

dataframe.registerTempTable("temp_table");
hiveSqlContext.sql("create external table 
   table_name if not exist as select * from temp_table");

下面提到的链接对createtable有很好的解释https://docs.databricks.com/spark/latest/spark-sql/language-manual/create-table.html

相关问题