1
我正在使用Spark 2.1.0并使用Java SparkSession运行我的SparkSQL。 我正试图保存名为'ds'
的Dataset<Row>
以保存到名为schema_name.tbl_name
的Hive表中并使用覆盖模式。 但是当我运行下面的语句Spark数据帧saveAsTable不截断Hive表中的数据
ds.write().mode(SaveMode.Overwrite)
.option("header","true")
.option("truncate", "true")
.saveAsTable(ConfigurationUtils.getProperty(ConfigurationUtils.HIVE_TABLE_NAME));
表中得到第一次运行后丢弃。 当我重新运行它时,表格会在加载数据的情况下创建。
即使使用truncate选项也不能解决我的问题。 saveAsTable是否考虑截断数据而不是删除/创建表?如果是这样,在Java中执行它的正确方法是什么?