如何从Scala调用python函数?

时间:2018-12-30 12:31:58

标签: python pandas scala

假设我有一个包含某些字段的实体 X

我有一个python function,它期望实体X的panda dataframes。它进行一些计算,用机器学习算法[sklearn]更新X的一个字段,最后返回更新的X的数据框。

另一方面,我有一个scala code,其中有List of entity X。现在,我还必须以与python对应方法相同的方式来计算X的该字段的值。

现在,要在scala中再次模拟类似的机器学习内容将非常困难。 我看到的最简单的方法是以某种方式重复使用/调用该python函数并获取更新的X列表。

有什么办法可以做到这一点? 有关如何解决此问题的任何见解或建议都将非常有帮助。

2 个答案:

答案 0 :(得分:-1)

以下代码将帮助您从scala本身调用python脚本。

import sys.process._
def callPython(){
     val result = "python /fullpath/mypythonprogram.py" ! 
        ProcessLogger(stdout append _, stderr append _)
println(result)
println("stdout: " + stdout)
println("stderr: " + stderr)
}

答案 1 :(得分:-1)

尝试此代码 val结果=“ python /fullpath/mypythonprogram.py”! ProcessLogger(stdout附加_,stderr附加_)

因为“!”只会返回0或1(0代表函数执行无错误,1代表函数通过错误)

希望它对您有用。 谢谢。