Использование сторонних библиотек в 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

Другие вопросы по тегам