Apache spark Nifi:无法在ExecuteScript处理器中导入pyspark

Apache spark Nifi:无法在ExecuteScript处理器中导入pyspark,apache-spark,import,pyspark,jython,apache-nifi,Apache Spark,Import,Pyspark,Jython,Apache Nifi,我需要在Nifi中实现ExecuteScript以便进行列转换,我正在使用pyspark作为实现这一点的手段 但问题是 “由于javax.script.ScriptExeption:ImportError:第1行没有名为pyspark的模块,处理失败:” 我在ExecuteScript属性中为模块目录设置设置了spark和pyspark的路径,如下所示 C:\Users\username\Desktop\spark\spark-2.4.3-bin-hadoop2.7\hadoop, C:\Use

我需要在Nifi中实现ExecuteScript以便进行列转换,我正在使用pyspark作为实现这一点的手段

但问题是 “由于javax.script.ScriptExeption:ImportError:第1行没有名为pyspark的模块,处理失败:”

我在ExecuteScript属性中为模块目录设置设置了spark和pyspark的路径,如下所示

C:\Users\username\Desktop\spark\spark-2.4.3-bin-hadoop2.7\hadoop,
C:\Users\username\Desktop\spark\spark-2.4.3-bin-hadoop2.7\bin\pyspark
但它没有起作用


我担心这是一个非常基本的问题,无法计算半天的时间。

这可能是因为
pyspark
模块是一个本机编译的Python模块,Apache NiFi在
ExecuteScript
处理器中使用Jython。这是一个众所周知的问题,问题就在这里,还有一些和


最简单的答案是使用
ExecuteStreamCommand
并将必要的流文件属性作为参数传递,将内容作为
STDIN
传递。Python脚本的输出将通过
STDOUT
返回,并作为新的流文件内容捕获

这可能是因为
pyspark
模块是一个本机编译的Python模块,ApacheNIFI在
ExecuteScript
处理器中使用Jython。这是一个众所周知的问题,问题就在这里,还有一些和


最简单的答案是使用
ExecuteStreamCommand
并将必要的流文件属性作为参数传递,将内容作为
STDIN
传递。Python脚本的输出将通过
STDOUT
返回,并作为新的流文件内容捕获

您能够以这种方式运行“普通”python代码吗?您是否能够在所有相关节点上手动运行pyspark脚本?对于ExecuteScript processer的属性配置,我为脚本引擎设置python,为脚本文件和模块目录设置pyspark模块的python代码所在的路径,以及我上面提到的路径。按照中的这些示例,您是否能够以这种方式运行“普通”python代码?您是否能够在所有相关节点上手动运行pyspark脚本?对于ExecuteScript processer的属性配置,我为脚本引擎设置python,为脚本文件和模块目录设置pyspark模块的python代码所在的路径,以及我上面提到的路径。在《谢谢你》中,我们遵循了这些例子。我用pandas模块编写了python脚本,它与ExecuteStreamCommand一起工作!非常感谢。我用pandas模块编写了python脚本,它与ExecuteStreamCommand一起工作!