Я работаю с API-интерфейсом Stream Streaming, чтобы ознакомиться с ним. Я реализую проблему подсчета слов, когда я слушаю поток и нахожу накопленный счетчик слов через x секунд и выводю его в текстовые файлы. Таким образом, после всех преобразований, когда я печатаю вывод в файл с помощью функции saveAsTextFiles () DStream, я получаю странный вывод.
Я ожидаю, что он будет создавать текстовый файл через каждые x секунд и выгружать последние результаты в этот файл. Я ожидаю, что имя файла будет префикс-timestamp-суффикс, как указано в документах. Но вместо этого я получаю папку каждые x секунд с именем, которое, как я ожидаю, будет названо именем файла, а внутри этой папки будут файлы part- * с моими результатами. Хотя они и правы, но почему это происходит? Мои ожидания как-то не так?
Для трансформации и прочего я использую это (на случай, если кому-то интересно):
# sort the dstream for current batch
sorted_counts = counts.transform(lambda rdd: rdd.sortBy(lambda x: x[1], ascending=False))
# get the top K values of each rdd from the transformed dstream
topK = sorted_counts.transform(lambda rdd: rdd.zipWithIndex().filter(<filter with big index>).map(<remove index here>))