Использование сторонних библиотек в Snaplogic Script Snap
Я пытаюсь создать сценарий Python с использованием оснастки сценария для отправки пакетного запроса в кластер Cassandra (сценарий Cassandra по какой-то причине не поддерживает пакетные операции), и мне нужен способ использования библиотеки 'cassandra'
Я просмотрел документацию по способу импорта библиотек Python, которые не являются стандартными, например, random, но я не могу найти способ сделать это.
Конкретные строки импорта, которые я использую:
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
Но это, очевидно, не работает, потому что библиотека Cassandra для python не установлена на SnapLogic. У меня нет возможности (AFAIK) устанавливать библиотеки на SnapLogic. Конкретная ошибка, которую я получаю, если она уместна:
Ошибка: невозможно оценить файл сценария: SQL_Demo_Cassandra_Script.py, Причина: ImportError: Нет модуля с именем cassandra в строке № 5, Решение: Пожалуйста, исправьте ошибку файла сценария в строке: 5 столбец: -1
0 ответов
Когда вы выбираете Python в оснастке Script, на самом деле это означает Jython. Итак, вы можете импортировать классы Java в свой скрипт.
Итак, вам нужно будет получить драйвер (файл JAR) для Cassandra, загрузить его на все узлы сплетения и обязательно сохранить его по одному и тому же пути на всех узлах.
Затем вы можете добавить JAR-файл к пути в скрипте и импортировать необходимые классы.
Примечание: я никогда не пробовал это в SnapLogic.
Обратитесь к вопросу Stackru - Импорт jar-файлов из Jython
Обновление №1:
Похоже, это рекомендуемый способ использования сторонних библиотек.
Из SnapLogic Docs:
Хотя SnapLogic не поддерживает импорт сторонних библиотек напрямую с помощью Script Snap, вы можете добавить их файлы package/JAR в каталог на ваших узлах Groundplex, а затем импортировать их с помощью этого Snap.
Например, предположим, что вы добавили файл JAR,
sample.jar
, в каталоге/opt/snaplogic/ext_jar/
. Включите следующие операторы в сценарий, который вы запускаете в Script Snap для импорта этой библиотеки:
import sys
# more code
sys.path.append('/opt/snaplogic/ext_jar/sample.jar')
# more code
Ограничения:
- Если вы используете несколько узлов Groundplex, вы должны добавить файлы пакета / JAR в каждый из этих узлов.
- Вы можете импортировать сторонние библиотеки только на узлы Groundplex.
Обратитесь к - SnapLogic Docs - Script Snap