Я искал, как записать результаты структурированного потока в s3, но не смог найти способ сделать это. Я попробовал несколько вариантов, но каждый из них привел с различной ошибкой. Вот что я хочу сделать:
- Чтение потока в формате csv
Сократите его до 2-3 строк результатов, содержащих средние значения в группе. Как это:
groupA, 15000
groupB, 10000
Затем запишите эти результаты в корзину s3 в одном файле, возможно, перезаписав по мере поступления новых входных потоков. Поэтому я попытался сделать так:
query.writeStream
.format("text")
.option("path", s3n://...")
.outputMode("complete")
...
Но это не сработало, Спарк пожаловался, что текстовый формат не может быть в режиме полного вывода. Но разве полный режим не единственный вариант, который может дать мне результаты, которые я хочу? Я также попробовал с режимом добавления, но затем spark пожаловался, что у меня есть агрегаты и что у меня должен быть водяной знак. Но разве водяной знак не имеет отношения к моей проблеме, потому что у меня нет меток времени в моем csv?