方式一:

SavaAsTable

用法:

df.write.mode(SaveMode.Overwrite).insertInto(table)

方式二:

InsertInto

用法:

df.write.mode(SaveMode.Overwrite).saveAsTable(table)

两种方式主要区别:

SaveAsTable方式,当hive中已经存在目标表,无论SaveMode是append还是overwrite,不需要schema一样,只要列名存在就行,会根据列名进行匹配覆盖数据

InsertInto方式,当hive中存在目标表时,无论SaveMode是append还是overwrite,需要当前DF的schema与目标表的schema必须一致