唠叨
Jpype是用来python调用Java类的东西,如有python版,谁也不想用Java,没有python版,只有java版本,就没得办法,毕竟你用了别人写的模块,用的版本又没有对应的python版本,又不想语言换来换去、版本换来换去,语言连接模块Jpype就用上了。安装名是Jpype1
使用Jpype
import jpype.imports
from time import *
# 获取虚拟机路径
jvmPath = jpype.getDefaultJVMPath()
# 启动虚拟机,相互引用,spark需要一堆jar包,不然会报错
jpype.startJVM(jvmPath,classpath=[r"D:\wslware\spark-2.4.6-bin-hadoop2.7\jars\*","D:\wslware\spark-streaming-kafka-0-10-assembly_2.11-2.4.8.jar"])
# 判断虚拟机是否启动
print(jpype.isJVMStarted())
#调用类
from org.apache.spark.streaming.kafka010 import KafkaUtils
#或者KafkaUtils=jpype.JClass("org.apache.spark.streaming.kafka010.KafkaUtils")
# 调用java程序,执行打印
jpype.java.lang.System.out.println("hello JPype !")
# 关闭虚拟机
jpype.shutdownJVM()
sleep(3)
print(jpype.isJVMStarted())
骂娘
版本更新、关联模块跟着受影响,系统环境、配置还各种问题,建议大神团队重写spark!
调用jar类pycharm还无法提示方法名和属性