Uruchomiłem zadanie iskry w EMR z YARN jako menedżerem zasobów i na 2 węzłach. Muszę celowo nie wykonać kroku, jeśli mój warunek nie jest spełniony, więc następny krok nie zostanie wykonany zgodnie z konfiguracją. Aby to osiągnąć, wyrzucam niestandardowy wyjątek po wstawieniu komunikatu dziennika w dynamoDB.Spark, Niepoprawne zachowanie podczas rzucania wyjątku SparkException w EMR
Działa dobrze, ale rekord w Dynamo jest wstawiany dwukrotnie.
Poniżej znajduje się mój kod.
if(<condition>) {
<method call to insert in dynamo>
throw new SparkException(<msg>);
return;
}
Jeśli usunę linię, aby rzucić wyjątek, działa dobrze, ale krok jest zakończony.
W jaki sposób można uczynić krok niepowodzeniem, bez dwukrotnego otrzymywania komunikatu dziennika.
Dzięki za pomoc.
Pozdrawiam, Sorabh