我有一个按列插入时间分区的配置单元表。
我有一个 pyspark 数据框,除了分区列之外,它具有与表相同的列。
当表未分区时,以下方法效果很好:
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 ")
另一个选择是添加这个静态值作为数据帧的最后一列,并尝试使用 insertInto() 作为动态分区模式。
关于hive - 将 pyspark 数据帧插入现有的分区 Hive 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46245739/