在 Snaplogic Script Snap 中使用第三方库
Using Third Party Libraries in Snaplogic Script Snap
我正在尝试使用脚本快照创建一个 python 脚本来向 Cassandra 集群发出批处理请求(Cassandra 脚本由于某种原因不支持批处理操作),我需要一种方法来使用 'cassandra' 库
我查看了文档以找到一种导入 python 库的方法,这些库不是默认的东西,比如随机的,但我找不到这样做的方法。
我使用的具体导入行是
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
但这显然不起作用,因为 python 的 Cassandra 库没有安装在 SnapLogic 上。我没有能力(据我所知)在 SnapLogic 上安装库。如果相关,我得到的具体错误是:
Failure: Cannot evaluate Script file: SQL_Demo_Cassandra_Script.py,
Reason: ImportError: No module named cassandra in at line
number 5, Resolution: Please fix the script file error at line: 5
column: -1
当你在 Script snap 中 select Python 时,它实际上意味着 Jython 。所以,基本上,您可以在脚本中导入 Java 类。
因此,您需要获取 Cassandra 的驱动程序(一个 JAR 文件)并将其上传到所有 plex 节点,并确保将其保存在所有节点上的相同路径中。
然后就可以将JAR文件添加到脚本中的路径中,导入需要的类.
注:我没在SnapLogic里试过
请参考 Whosebug 问题 - Importing jars from Jython
更新#1:
看起来这是使用第三方库的推荐方式。
来自 SnapLogic 文档:
While SnapLogic does not support importing third party libraries
directly using the Script Snap, you can add their package/JAR files in
a directory in your Groundplex nodes and then import them using this
Snap.
For example, consider that you have added the JAR file, sample.jar
, in
the directory /opt/snaplogic/ext_jar/
. Include the following
statements in the script that you are running in the Script Snap to
import this library:
import sys
# more code
sys.path.append('/opt/snaplogic/ext_jar/sample.jar')
# more code
限制:
- If you are using multiple Groundplex nodes then you must add the package/JAR files in each of those nodes.
- You can import third party libraries only on Groundplex nodes.
我正在尝试使用脚本快照创建一个 python 脚本来向 Cassandra 集群发出批处理请求(Cassandra 脚本由于某种原因不支持批处理操作),我需要一种方法来使用 'cassandra' 库
我查看了文档以找到一种导入 python 库的方法,这些库不是默认的东西,比如随机的,但我找不到这样做的方法。
我使用的具体导入行是
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
但这显然不起作用,因为 python 的 Cassandra 库没有安装在 SnapLogic 上。我没有能力(据我所知)在 SnapLogic 上安装库。如果相关,我得到的具体错误是:
Failure: Cannot evaluate Script file: SQL_Demo_Cassandra_Script.py, Reason: ImportError: No module named cassandra in at line number 5, Resolution: Please fix the script file error at line: 5 column: -1
当你在 Script snap 中 select Python 时,它实际上意味着 Jython 。所以,基本上,您可以在脚本中导入 Java 类。
因此,您需要获取 Cassandra 的驱动程序(一个 JAR 文件)并将其上传到所有 plex 节点,并确保将其保存在所有节点上的相同路径中。
然后就可以将JAR文件添加到脚本中的路径中,导入需要的类.
注:我没在SnapLogic里试过
请参考 Whosebug 问题 - Importing jars from Jython
更新#1:
看起来这是使用第三方库的推荐方式。
来自 SnapLogic 文档:
While SnapLogic does not support importing third party libraries directly using the Script Snap, you can add their package/JAR files in a directory in your Groundplex nodes and then import them using this Snap.
For example, consider that you have added the JAR file,
sample.jar
, in the directory/opt/snaplogic/ext_jar/
. Include the following statements in the script that you are running in the Script Snap to import this library:
import sys
# more code
sys.path.append('/opt/snaplogic/ext_jar/sample.jar')
# more code
限制:
- If you are using multiple Groundplex nodes then you must add the package/JAR files in each of those nodes.
- You can import third party libraries only on Groundplex nodes.