Python PySpark插件覆盖

Python PySpark插件覆盖,python,apache-spark,pyspark,hive,Python,Apache Spark,Pyspark,Hive,我正在尝试将数据帧中的数据插入配置单元表。我已经能够使用 df.write.insertInto(“db1.table1”,overwrite=True) 我只是对overwrite=True部分有点困惑——我多次尝试运行它,它似乎是附加的,而不是覆盖的。文档中没有太多内容,但是我应该在什么时候将overwrite设置为Falsevs.True?

我正在尝试将数据帧中的数据插入配置单元表。我已经能够使用
df.write.insertInto(“db1.table1”,overwrite=True)


我只是对
overwrite=True
部分有点困惑——我多次尝试运行它,它似乎是附加的,而不是覆盖的。文档中没有太多内容,但是我应该在什么时候将overwrite设置为
False
vs.
True

仅当蜂巢中的
表已经存在时才起作用

df.write.insertInto(“db.table1”,overwrite=False)
将数据附加到现有配置单元表中

df.write.insertInto(“db.table1”,overwrite=True)
覆盖配置单元表中的数据

示例:

df.show()
#+----+---+                                                                                                                                                                              
#|name| id|
#+----+---+
#|   a|  1|
#|   b|  2|
#+----+---+

#save the table to hive
df.write.saveAsTable("default.table1")

#from hive
#hive> select * from table1;
#OK
#a       1
#b       2

df.write.insertInto("moch.table1",overwrite=True)

#from hive
#hive> select * from table1;
#OK
#a       1
#b       2

#appending data to hive
df.write.insertInto("moch.table1",overwrite=False)

#from hive
#hive> select * from table1;
#OK
#a       1
#b       2
#a       1
#b       2

df.insertInto
仅当配置单元中的
表已经存在时才起作用

df.write.insertInto(“db.table1”,overwrite=False)
将数据附加到现有配置单元表中

df.write.insertInto(“db.table1”,overwrite=True)
覆盖配置单元表中的数据

示例:

df.show()
#+----+---+                                                                                                                                                                              
#|name| id|
#+----+---+
#|   a|  1|
#|   b|  2|
#+----+---+

#save the table to hive
df.write.saveAsTable("default.table1")

#from hive
#hive> select * from table1;
#OK
#a       1
#b       2

df.write.insertInto("moch.table1",overwrite=True)

#from hive
#hive> select * from table1;
#OK
#a       1
#b       2

#appending data to hive
df.write.insertInto("moch.table1",overwrite=False)

#from hive
#hive> select * from table1;
#OK
#a       1
#b       2
#a       1
#b       2

如何插入未创建配置单元表的S3位置?ETL工作只是将数据加载到S3,以便下游进程使用,但不需要创建表来感谢有用的用户。改进示例的一个小建议是使用不同的数据帧来演示
df.write.insertInto(“moch.table1”,overwrite=True)
。现在还不清楚表本身是否被覆盖或重复的行是否被更新。如何插入到未创建配置单元表的S3位置?ETL工作只是将数据加载到S3,以便下游进程使用,但不需要创建表来感谢有用的用户。改进示例的一个小建议是使用不同的数据帧来演示
df.write.insertInto(“moch.table1”,overwrite=True)
。现在还不清楚表本身是被覆盖了还是重复的行被更新了。