我一直在搜索如何将结构化流结果写入s3但无法找到方法 . 我尝试了几个选项,但每个选项都产生了不同的错误 . 这是我想要做的:

  • 阅读csv流

  • 将其减少到包含组中平均值的2-3行结果 . 像这样:

groupA, 15000
groupB, 10000
  • 然后将这些结果写入单个文件中的s3存储桶,可能会在新输入流进入时覆盖 . 所以我尝试这样做:
query.writeStream
.format("text")
.option("path", s3n://...")
.outputMode("complete")
...

但它没有奏效,火花抱怨文字格式不能处于完整的输出模式 . 但是,完整模式不是唯一可以给我想要的结果吗?我也尝试了追加模式,但后来火花抱怨我有聚合,我应该有水印 . 但是水印与我的问题无关,因为我的csv中没有时间戳?