В настоящее время я разрабатываю конвейер для обработки видео (около 3000 видео по 1 ГБ каждый), используя в качестве входных данных длинные видео и файлы аннотаций, относящиеся к этим видео. Процесс выглядит следующим образом:
- Создание RDD с видео
- Создание RDD с файлом аннотации
- Объедините эти два RDD, чтобы связать каждое видео с их файлом аннотации
- Токенизация видео в соответствии с инструкцией файла аннотации.
С этой мыслью я создал этот простой код в самом начале, чтобы увидеть, все было в порядке:
video = sc.binaryFiles("./myFolder/*.mp4")
video_path = video.keys()
video_path.first()
И этот код вызывает ошибку памяти при выполнении первой строки. Кажется, что Spark пытается загрузить все видео. Я ожидал, что "лень" искры помешает ему загрузить фактическое видео.
Поэтому я задавал себе различные вопросы:
- У вас есть какие-либо советы о том, как создать конвейер, манипулирующий большими файлами?
- Должен ли я создать RDD для своих видео или просто манипулировать файлом аннотации и открывать соответствующее видео, когда они мне нужны для токенизации?
- Должен ли я взглянуть на API "Spark Streaming" для такого рода задач?
Я действительно новичок в Spark ie, поэтому не стесняйтесь дать мне все совет по основам, который приходит на ум.