PySpark insertInto перезаписать - PullRequest
       85

PySpark insertInto перезаписать

1 голос
/ 06 августа 2020

Я пытаюсь вставить данные из фрейма данных в таблицу Hive. Мне удалось сделать это успешно, используя df.write.insertInto("db1.table1", overwrite = True).

. Я просто немного запутался в части overwrite = True - я пробовал запускать ее несколько раз, и казалось, что она добавляется, а не перезаписывается. В документации не так уж много, но когда мне следует установить перезапись на False вместо True?

1 Ответ

3 голосов
/ 06 августа 2020

df.insertInto работает, только если table already exis ts в улье.

df.write.insertInto("db.table1",overwrite=False) будет append данные в существующей таблице улья.

df.write.insertInto("db.table1",overwrite=True) будут overwrite данные в таблице улья.

Пример:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...