首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据从Java发送到Python,然后返回响应

将数据从Java发送到Python,然后返回响应
EN

Stack Overflow用户
提问于 2015-03-15 10:01:03
回答 1查看 1.5K关注 0票数 6

我有一个Java程序,它以对象列表的形式从数据库中获取数据,而一个对象只是有一些与其相关的原始类型,比如字符串和ints。

现在,我需要将数据从Java传递给Python程序来进行一些计算,然后将计算出来的输出返回给Java程序。

我的Python程序有以下导入

代码语言:javascript
复制
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf
import numpy as np
import scipy.misc as sp
from scipy.optimize import minimize
from scipy.stats import poisson

有没有人知道我怎么能做到这一点?我查看了Jython,但发现它与NumPy和其他部分不兼容,但是有一个名为JyNI的兼容层,但是我找不到很多例子来获得一个有效的解决方案。

编辑:从我的研究来看,似乎没有一个合适的库来处理Java和Python之间的通信,但是Java程序是否可以启动Python脚本来查找一个包含处理所需数据的JSON文件,然后打印一个Java可以获取的输出?

EN

回答 1

Stack Overflow用户

发布于 2015-03-18 20:24:31

我认为你们有几个选择,我个人最喜欢的是:

  • 我不太清楚您为什么要在Python和Java之间进行讨论,所以我想提出第一点,如果可能的话,远离这些东西。我明白,有些事情在一种语言中根本做不到,某些库在另一种语言中很难找到/模仿,等等;但是,人们会发现,用一种语言来完成整个任务往往不那么麻烦。尽管如此,如果你仍然觉得你希望你使用两种语言,我不会阻止你,因为你可能有一个很好的理由。
  • 如果你选择继续,那么,让我向你提供一些可能有助于规避这一问题的快速几个想法。尽管Jython确实与NumPy不兼容,但也有其他库可以类似地完成您的任务。有几个例子:DataMelt (一种JVM语言家族友好的绘图方式,但也具有很强的数学能力);EJML (对于处理大型矩阵来说是一件很棒的事情,它是开源的:D);和ND4J (一个与NumPy非常相似的库)。
  • 最后,如果您在上面的内容中发现了困难,或者您只是选择不使用它,那么总是有抽象的选择。我这样说,意思是人们总是可以选择在哪里执行哪些任务:这适用于您,因为您可以移动一些计算和进程,这样Java就可以完成更多的工作,将实际需要发送的内容降到最小,到一些简单的结构中,这些结构可以通过JVM家族中的脚本语言(比如Rhino、一个JavaScript派生程序等)传递,或者使用Jacl这样的东西通过TCP连接局域网,并通过I/O方法将一个程序的结果广播到另一个程序。

在过去,人们可能会想出许多其他的小解决方案和解决方案(本机嵌入、高级控制等等),但这些都是我给您提供的最好的解决方案,因为它们给您带来的麻烦最少(据我所知)。我希望这能回答你的问题,祝你好运。

在Java中有用的数学库的简短列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29059374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档