在Snaplogic脚本快照中使用第三方库

时间:2019-05-31 17:22:21

标签: python python-3.x cassandra snaplogic-script-snap

我正在尝试使用脚本快照创建python脚本,以向Cassandra集群发出批处理请求(由于某种原因,Cassandra脚本不支持批处理操作),我需要一种使用'cassandra'库的方法

我在文档中寻找了一种导入python库的方法,该库不是默认的东西,例如random,但是我找不到任何方法。

我正在使用的特定导入行是

from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider

但这显然不起作用,因为SnapLogic上未安装Python的Cassandra库。我没有能力(AFAIK)在SnapLogic上安装库。如果相关的话,我得到的具体错误是:

故障:无法评估脚本文件:SQL_Demo_Cassandra_Script.py,原因:ImportError:在第5行第5行,没有名为cassandra的模块。解决:请在第5行:-1处修复脚本文件错误。

1 个答案:

答案 0 :(得分:1)

脚本快照中选择 Python 时,实际上表示 Jython 。因此,基本上,您可以在脚本中导入Java类。

因此,您需要获取Cassandra的驱动程序(一个JAR文件)并将其上传到所有plex节点,并确保将其保存在所有节点上的相同路径中。

然后,您可以将JAR文件添加到脚本中的路径并导入所需的类。

注意:我从未在SnapLogic中尝试过。

请参考StackOverflow问题-Importing jars from Jython


更新#1:

看起来这是使用第三方库的推荐方法。

从SnapLogic文档中:

  

虽然SnapLogic不支持导入第三方库   直接使用脚本捕捉,您可以在其中添加其程序包/ JAR文件   Groundplex节点中的目录,然后使用此目录将其导入   捕捉。

     

例如,假设您在以下位置添加了JAR文件sample.jar:   目录/opt/snaplogic/ext_jar/。包括以下这些   您在“脚本捕捉到”中运行的脚本中的语句   导入该库:

import sys
# more code
sys.path.append('/opt/snaplogic/ext_jar/sample.jar')
# more code

限制

  
      
  • 如果您使用多个Groundplex节点,则必须在每个节点中添加软件包/ JAR文件。
  •   
  • 您只能在Groundplex节点上导入第三方库。
  •   

请参阅-SnapLogic Docs - Script Snap