Spark 增量操作 insertInto() 与 mode(SaveMode.Append).saveAsTable() 的区别

前言

  • 使用spark做增量操作的时候,会看到有2个方法都可以做:
    • insertInto 和 mode(SaveMode.Append).saveAsTable()

区别:

  • insertInto()
    • 无关schema,只按数据的顺序插入,类似hive导入csv.
  • mode(SaveMode.Append).saveAsTable()
    • 如果表已存在,需要匹配插入数据和已有数据的format,partiton等参数的区别,如果有区别会插入出错.如:没有提供partitionBy.
    • 使用已存在的表的schema的column进行数据插入匹配

参考链接:

  • DataFrameWriter源码
  • Spark Issue: Document the semantic of saveAsTable and insertInto

你可能感兴趣的:(--13.2.4.Spark)