Кажется, в конце концов, что внешний скрипт должен присутствовать на всех узлах исполнителя. Один из способов сделать это - передать ваш скрипт через spark-submit (например, --files script.sh), и тогда вы сможете ссылаться на это (например, "./script.sh") в rdd.pipe.
Следующее должно сделать это:
function handleOnClick() {
if( confirm( "Sure?" ) ) {
return handleOnClickConfirmed.call( this );
}
return false;
}
call()
функция, присоединенная к Function
объекты разработаны для разрешения этого; вызывание функции с желаемым контекстом. Это - чрезвычайно полезный прием при установке обработчиков событий, которые перезванивают в функции в других объектах.
Ответ Rob является лучшим ответом для Вашей проблемы, но я хотел обратиться к чему-то, что Вы записали в своем исходном вопросе:
Я знаю, что могу передать это как аргумент handleOnClickConfirmed, но часть моего кода уже использует handleOnClickConfirmed, и я не хочу должным быть переписывать те вызовы.
Параметры JavaScript являются всегда дополнительными, что касается интерпретатора. Например, если у Вас есть функция:
function MyFunction(paramA, paraB) {
// do nothing
}
Все эти вызовы выполнятся без ошибки:
MyFunction(1,2);
MyFunction(1);
MyFunction();
Таким образом, Вы могли изменить handleOnClickConfirmed для принятия то, что по существу будет дополнительным параметром. Как так:
function handleOnClickConfirmed(context) {
context = context || this;
// use context instead of 'this' through the rest of your code
}
Снова, в данном случае, функция вызова является лучшим решением. Но техника, которую я обрисовал в общих чертах выше, является хорошей, чтобы иметь на Вашей панели инструментов.