Nifi: невозможно импортировать pyspark в процессоре ExecuteScript - PullRequest
0 голосов
/ 27 мая 2019

Мне нужно реализовать ExecuteScript в Nifi, чтобы выполнить транспонирование столбцов, и я использую pyspark в качестве средства для этого.

Но проблема говорит "не удалось обработать из-за javax.script.ScriptExeption:ImportError: В строке № 1 отсутствует модуль с именем pyspark: "

Я установил путь к spark и pyspark, как показано для установки каталога модулей в свойстве ExecuteScript.

C:\Users\username\Desktop\spark\spark-2.4.3-bin-hadoop2.7\hadoop,
C:\Users\username\Desktop\spark\spark-2.4.3-bin-hadoop2.7\bin\pyspark

Но это не такработа.

Боюсь, это очень принципиальная проблема, не могу разобраться полдня ..

1 Ответ

2 голосов
/ 28 мая 2019

Вероятно, это связано с тем, что модуль pyspark представляет собой модуль Python , скомпилированный в собственном коде, а Apache NiFi использует Jython в процессоре ExecuteScript. Это известная проблема, здесь есть полное объяснение , а также некоторые обходные пути и подробности о параметрах .

Самый простой ответ - использовать ExecuteStreamCommand и передать необходимые атрибуты потокового файла в качестве аргументов, а содержимое - как STDIN. Выходные данные скрипта Python будут возвращены через STDOUT и записаны в качестве нового содержимого потокового файла.

...