当需要在s3中写入parquets并将其保存到redshift时,尝试保留数据集是否有意义?
dataset.write
.mode(SaveMode.Overwrite).parquet(s"s3a://s3path")
dataset.write.format("com.databricks.spark.redshift")
.option("url", redshiftJdbcUrl)
.option("dbtable", "table")
.option("tempdir", s"s3a://s3PathTemp")
.mode("append")
.save()
那么在这种情况下我写的是镶木地板,保存到红移,还需要抓住最大ID以分别保存在s3中?
val lastId: String = dataset.describe("id").filter("summary = 'max'").select("id").collect()(0).getString(0)
Seq(lastId).toDS().coalesce(1).write
.mode(SaveMode.Overwrite)
.text(S3PathMaxId)