Spark Streaming in einem S3-Verzeichnis

So werden Tausende von Ereignissen über Amazon Kinesis in SQS gestreamt und dann in ein S3-Verzeichnis verschoben. Ungefähr alle 10 Minuten wird eine neue Textdatei erstellt, um die Daten von Kinesis in S3 zu speichern. Ich möchte Spark Streaming so einrichten, dass die neuen Dateien, die in S3 gespeichert werden, gestreamt werden. Gerade habe ic

import org.apache.spark.streaming._
val currentFileStream = ssc.textFileStream("s3://bucket/directory/event_name=accepted/")
currentFileStream.print
ssc.start()

Spark Streaming übernimmt jedoch nicht die neuen Dateien, die in S3 gespeichert werden. Ich denke, es hat etwas mit den Anforderungen an das Schreiben von Dateien zu tun:

The files must have the same data format.
The files must be created in the dataDirectory by atomically moving or renaming them into the data directory.
Once moved, the files must not be changed. So if the files are being continuously appended, the new data will not be read.

Warum nimmt Spark Streaming die neuen Dateien nicht auf? Liegt es daran, dass AWS die Dateien im Verzeichnis erstellt und nicht verschiebt? Wie kann ich sicherstellen, dass Spark die Dateien aufnimmt, die in S3 gespeichert werden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage