问题标签 [py4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
84 浏览

java - corenlp 情绪 Java 程序通过 Python 中的 Py4j,引发错误

我制作了一个 Java 情感分析程序,通过 Py4j 在 Python 中使用。我可以在 Python 中创建 Java 对象,但尝试访问该方法,它会给出 java.lang.NullPointerException。你能帮忙吗?谢谢。

Java 代码:它编译正确,运行没有错误。

蟒蛇代码

空指针异常

0 投票
0 回答
797 浏览

java - 通过 Py4j 从 python 的 scala 项目中使用 jar

我从我的 Scala 项目中构建了一个 jar。

对于我想从这个 jar 使用的内容,我有以下结构

第一个问题:也许我误解了 Py4J 提供的东西,但是如果我想使用自己的类,是否必须编写一个 java/scala 类来启动 Py4J 网关?还是将其添加到网关的 jvm 类路径就足够了?

第二个问题(根据上面的答案,我猜这并不适用):如何在启动 java 网关时添加我的 jar 以使其可用?为了暂时解决这个问题,我只是用我的 jar 和 Py4J jar 手动启动了 jvm 和这个命令

然后从 Python 代码手动连接到它。然后我尝试通过导入我的课程

它没有抛出任何错误,但我不确定它是否有效,因为如果我输入一些虚假的类路径,它不会抛出任何错误。

第三个问题(如果第一个问题的答案是我必须编写入口点来访问我的类):使用 scala 时这是如何工作的?

0 投票
1 回答
528 浏览

scala - 通过 py4j 来自 jvm 的 Python 字节数组

我正在使用 py4j 将字节数组 (Array[Byte]) 从 Scala 发送到 python。在 python 方面,我希望创建一个 numpy 数组(最好是不可变的),它只是这些字节的视图,但被解释为 np.complex128。不考虑字节顺序,字节顺序如下:real1, imag1, real2, imag2, ....

根据python 3.5 和 py4j 0.10.3 的py4j 文档,似乎我应该在 python 端获得一个字节对象,但我实际上得到了一个 JavaArray,据我所知,它有一个对数组的引用jvm 方面,我认为这使得这很慢。我猜这是由于Scala的字节到字节(类)的“自动装箱”,但我不确定。

Py4j 问题:是否可以强制 py4j 返回字节的副本?

Scala 问题:也许我的猜测是错误的,在这种情况下它实际上编译为原始字节数组?如果没有,除了用Java编写那部分之外,是否有可能确保它无论如何都可以做到。

0 投票
1 回答
6886 浏览

java - 使用 Py4j 从 Python 将可变参数传递给 Java

我正在尝试将可变参数从 python 传递给 Java 代码。

Java 代码:LogDebugCmd.java

命令入口点.java

Python代码test.py:

错误 :

有没有办法将 varargs 传递给 Java ?我试图将 String 作为第二个参数传递给 getLogDebugCmd() ,这也会出错。

0 投票
0 回答
1442 浏览

python - IPython-Py4JJavaError:

我得到一个 Py4JJavaError: 当我尝试从 pyspark 中的 rdd 创建一个数据框时。问题是 .createDataFrame() 在一个 ipython 笔记本中有效,而在另一个笔记本中无效。奇怪的。我一直在试图找出是否有 synatx 错误,我不能很好。这是我的代码:


0 投票
0 回答
69 浏览

python - 将用户名添加到 Spark 的 log4j

我有一个使用 Spark 的 python 脚本,所以我决定也使用 Spark 自己的 log4j 来为我的脚本进行日志记录。但是,我想将当前操作系统用户名添加到日志记录模式,甚至可能添加其他参数。

有一些解决方案我应该扩展 log4j 类等,但由于我使用的是 python,除此之外,甚至不是我自己的 log4j,而是 Spark,有没有一种简单的方法来添加这些变量?

如果不是更简单,也许我可以在开始时从脚本内部添加一些变量,然后将变量插入到 log4j 模式中?我可以通过类似或类似的级别调用消息记录器logger.info,但我不知道通过 python 的 py4j 网关可以访问哪些其他功能,而且我找不到任何好的文档。

0 投票
4 回答
20713 浏览

python - findspark.init() IndexError: 列表索引超出范围错误

在 Python 3.5 Jupyter 环境中运行以下命令时,出现以下错误。关于是什么原因的任何想法?

错误:

0 投票
2 回答
5331 浏览

java - py4j:如何从 Python 启动 java 网关

通过打开我的 Java 程序,然后使用以下 Python 代码,我可以在 Python 中与我的示例 Java 程序进行交互:

然而,这有一个缺点,即我必须在使用此代码之前以某种方式打开 Java 程序。

我发现有一个名为 launch_gateway 的方法似乎非常方便实现这一目标。

但是,如果以这种方式启动,我将无法连接到我的 Java 程序。

我尝试使用以下代码:

但我收到以下错误:

我想我在尝试连接到网关的方式上做错了。

有什么建议吗?

谢谢

0 投票
1 回答
1373 浏览

anaconda - 在 Anaconda 中安装 Py4j 时出错

我无法在 Anaconda - Spyder 中安装 Py4j。

我正在使用 Windows 32 位、Python 3.5 和 anaconda 4.1。

我收到以下错误:

在此处输入图像描述

我尝试了多个命令,包括 conda install py4j

我还运行以下命令:

看起来 Win-32bit 版本的 10.4 可用。但不知道为什么它没有安装。

0 投票
0 回答
709 浏览

python - apache-spark - 在 Windows 上启动 pyspark 时出错

我正在尝试使用 python 在 windows 上尝试 MLlib。所以看来我需要 SPARK,而 SPARK 又需要 HADOOP。我已经安装了包含 python 2.7、numpy 等的 Anaconda2。

我一直在遵循这个食谱,在我看来,它主要是让我去我需要去的地方,但我认为我陷入了最后一个错误:

从这个输出中可以清楚地看到没有关于 winutils.exe 未找到的错误。

此外,异常源自 py4j 的 java 域,但由于 IllegalArgumentException,我们丢失了回溯。

所有指导表示赞赏!

干杯