网站建设必备的功能模块,为什么网页打不开了,wordpress小程序怎么发布文章,怎么做58同城网站教程HuggingFists作为一个低代码平台#xff0c;很多朋友会关心如何扩展平台算子能力。扩展平台尚不支持的算子功能。本文就介绍一种通过脚本算子扩展算子能力的解决方案。 HuggingFists支持Python和Javascript两种脚语言的算子。两种语言的使用方式相同#xff0c;使用者可以任选… HuggingFists作为一个低代码平台很多朋友会关心如何扩展平台算子能力。扩展平台尚不支持的算子功能。本文就介绍一种通过脚本算子扩展算子能力的解决方案。 HuggingFists支持Python和Javascript两种脚语言的算子。两种语言的使用方式相同使用者可以任选一种自己熟悉的语言来扩展算子功能。通过脚本算子扩展的功能尽量使用标准脚本语言的标准语法包。如果需要引用第三方的包方法则需要完成三方包的安装、部署并将安装好的环境映射到HuggingFists的Docker镜像中。对于不太熟悉Docker的用户不建议采用这种复杂的机制扩展算子功能。可以考虑HuggingFists下一版将会发布的数据服务的第三方Web API接口集成功能来扩展复杂功能。下面我们以PythonScript算子为例介绍下如何扩展算子的功能。 PythonScript算子位于算子树的”处理”/”脚本”分组下。将其拖着到面板中可以看到算子有两个属性TAB页“一般”和“脚本”。 在“一般”属性页内点击“设置”按钮为Python脚本算子定义输出端口以及输出端口的输出结构。这里的输出结构必须定义且必须手工保证其结构与Python脚本中通过DataListener接口输出的数据结构一致。否则后续算子会出现不可预知的错误。 在“脚本”属性页内点击“编辑”按钮按照脚本规范编写Python脚本。Python内嵌的脚本必须遵循至少包括以下两个函数中的一个processRows(rowSet, dataListener)或processRow(row, dataListener)。若两个函数同时存在则优先使用processRows。 processRows表示对传入的集合进行处理。无需特别关注的是Python脚本算子已经完成了将输入的数据转换为Python语言可接收的数据结构。rowSet是一个字典类型的链表其中的每个字典对象代表一条记录。dataListener是一个回调接口对象处理程序可以通过调用该接口将处理结果返回给算子。代码示例如下
def processRows(rowSet, dataListener):for row in rowSet:content row[dataBlock]System.out.println(content)person {name: a, gender: 女, party: 共和党}dataListener.onData(dataOut, person)return; processRow表示对传入的记录进行处理row是一个字典代表一条记录。dataListener是一个回调接口对象处理程序可以通过调用该接口将处理结果返回给算子。代码示例如下
def processRow(row, dataListener):content row[dataBlock]System.out.println(content)person {name: a, gender: 女, party: 共和党}dataListener.onData(dataOut, person)org {name: 总部, address: 北京市海淀区, phone: 010-23344444,fax: 010-23242334}dataListener.onData(orgOut, org)return dataListener对象内置onData(portName, row)函数脚本通过调用该接口将数据写出到指定的端口。portName表示数据要写出的端口的名字该端口必须是一个我们之前定义好的输出端口row表示一条处理后的数据字典对象其结构应符合对应输出端口的结构定义。 针对示例代码我们的算子输出端口定义如下 PythonScript算子目前仅支持python3。有需要的朋友后面可以试着用PythonScript算子扩展平台暂不支持的算子能力了。