for*_*man 1 python hive apache-spark pyspark
我正在尝试将数据框中的数据插入到 Hive 表中。我已经能够成功地使用
df.write.insertInto("db1.table1", overwrite = True).
我只是对这个overwrite = True部分有点困惑——我尝试多次运行它,它似乎是附加的,而不是覆盖的。文档中没有太多内容,但是我什么时候应该将覆盖设置为Falsevs. True?
df.insertInto仅当table already exists在 hive 中时才有效。
df.write.insertInto("db.table1",overwrite=False)将append数据转移到现有的 hive 表中。
df.write.insertInto("db.table1",overwrite=True)将overwritehive 表中的数据。
例子:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3576 次 |
| 最近记录: |