考虑一个代码:

val inputTable = glueContext
  .getCatalogSource(database = "my_db", tableName = "my_table)
  .getDynamicFrame()

glueContext.getSinkWithFormat(
  connectionType = "s3",
  options = JsonOptions(Map("path" -> "s3://my_out_path")),
  format = "orc", transformationContext = ""
).writeDynamicFrame(inputTable)

当我运行此代码两次时,将新的 orc 文件添加到 "s3://my_out_path" 中的旧文件中。有没有办法覆盖始终覆盖路径?

注意

写入数据没有分区。

最佳答案

是的,您可以使用 spark 覆盖内容。您仍然可以使用 Glue 方法读取数据,但随后将其更改为 spark 数据框并覆盖文件:

datasink = DynamicFrame.toDF(inputTable)
datasink.write.\
            format("orc").\
            mode("overwrite").\
            save("s3://my_out_path")

关于scala - 如何覆盖 aws 胶中的数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48401889/

10-11 10:22