将Pyspark数据框架插入现有的分区蜂巢表



我有一个由列插入时间分区的蜂巢表。

我有一个pyspark dataframe,其列具有与表格相同的列。

当表未分区时,以下效果很好:

df.insertInto('tablename',overwrite=True)

但我无法弄清楚如何从pyspark插入特定分区

在下面尝试:

 df.insertInto('tablename',overwrite=True,partition(inserttime='20170818-0831'))

,但它不起作用,并且失败了

SyntaxError: non-keyword arg after keyword arg

我正在使用pyspark 1.6

一个选项是:

df.registerTempTable('tab_name')
hiveContext.sql("insert overwrite table target_tab partition(insert_time=value) select * from tab_name ")

另一个选项是将此静态值添加为DataFrame的最后一列,并尝试将InsertInto()用作动态分区模式。

您可以使用df.write.mode(" offrite")。partitionby(" inserttime")。saveastable(" tablename")

,也可以覆盖分区本身中的值。

df.write.mode(savemode.overwrite).save(" location/inserttime ='20170818-0831'")

希望这会有所帮助。

最新更新