Простым способом COALESCE: - только для уменьшения количества разделов, без перетасовки данных он просто сжимает разделы
REPARTITION: - для увеличения и уменьшения количества разделов, но
Пример: -
val rdd = sc.textFile("path",7)
rdd.repartition(10)
rdd.repartition(2)
Оба работают отлично
Но мы идем в основном для этих двух вещей, когда нам нужно видеть вывод в одном кластере , мы идем с этим.
UPDATE: Похоже, что кросс-счетное срабатывание функции лямбда из S3 на самом деле возможно . См.: Использование политик на основе ресурсов для AWS Lambda (правила функции лямбда)
Старый ответ:
Amazon S3 может запускать функцию AWS Lambda когда объекты добавляются или удаляются из ведра.
Однако этот триггер должен быть настроен на самом ковше. Вам понадобится владелец ковша (или кто-то с достаточными разрешениями), чтобы настроить конфигурацию для запуска Lambda.
Кроме того, вызываемая функция Lambda должна находиться в той же учетной записи, что и ведро Amazon S3. Вы можете создать функцию Lambda в одной учетной записи, которая затем вызывает функцию Lambda в другой учетной записи (при наличии достаточных разрешений), но Bucket в учетной записи A не может напрямую активировать функцию Lambda в учетной записи B.
Предположим, что ваше ведро находится в Account-A и ваша лямбда в Account-B. Вы можете сделать это следующим образом:
aws lambda add-permission \
--function-name MyFunction \
--region <your-region> \
--statement-id <whatever> \
--action "lambda:InvokeFunction" \
--principal s3.amazonaws.com \
--source-arn <source-bucket-arn> \
--source-account <Account-A-id> \