Получение org. apache .spark.SparkException: задача не сериализуема: groovy .lang.script - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь выполнить следующий код: -

    Script script = new GroovyShell().parse(code);

    UDF3 rulesExecutingUDF = (UDF3<Double, String, String, String>) (val1, val2, val3) -> {
        Binding binding=new Binding();
        binding.setVariable("val1",val1);
        binding.setVariable("val2", val2);
        binding.setVariable("val3", val3);
        script.setBinding(binding);
        Object value = script.run();
        return value.toString();
    };
    sparkSession.udf().register("rulesExecutingUDF",rulesExecutingUDF,DataTypes.StringType);
    dataset=dataset.withColumn("NEW_VAL",callUDF("rulesExecutingUDF",col("VAL1"),col("VAL2"),col("VAL3")));

Однако я получаю следующую ошибку: -

Исключительная ситуация класса пользователя: org. apache .spark.SparkException: задача не сериализуется. Причина: java .io.NotSerializableException: Script1

Я думаю, что объект сценария groovy .lang.Script вызывает здесь проблемы, так как по некоторым причинам spark не может его сериализовать .

Что мне здесь делать? Я попытался поискать об этом в inte rnet, но я не получаю никаких решений для этого. Я новичок в зажигании, поэтому я не знаю, что здесь делать.

...