python 或者 pyspark 和 java 交互, pyspark 里怎么调用自定义的 jar 包
1. python 直接访问 jar 里面的类
先定义java文件,然后要访问java class, 需要有gateway server 和 entrypoint, 到时候python就可以连接上gateway server访问java object了.具体参考这里 python 怎么调用 java https://www.py4j.org/getting_started.html 用 py4J 作为中间gateway.
2. pyspark 访问jar里面的类
上面讲的是python怎么访问java对象,如果从pyspark 访问java对象就简单多了,因为pyspark会帮你自动创建好gateway server, 所有你的java code 就不需要写gateway server了. 但是pyspark 这端还是需要有专门的code去连接 gateway server的. 示例代码如下.
In PySpark try the following
pyspark --driver-class-path my-test-1.0-SNAPSHOT.jar
from py4j.java_gateway import java_import
java_import(sc._gateway.jvm,"org.foo.module.Foo") func = sc._gateway.jvm.Foo()
func.fooMethod()
# 也可以这样
sc._jvm.com.mycompany.app.Stack().my_open()
# 感觉 sc._jvm 和 sc._gateway.jvm 是一样的效果
具体参考这里 pyspark 怎么import java https://stackoverflow.com/questions/33544105/running-custom-java-class-in-pyspark
那么问题来了,可不可以在pyspark 这端可不要这么麻烦的,直接像引用Python module 一样 import xxx_module 这样不是更好吗?
3. 怎么在pyspark里直接import jar 里面的class
基于上面的疑问,看 delta lake的官方示例代码的时候有个疑问,人家怎么做到的?

所以就去下载了 io.delta_delta-core_2.11-0.5.0.jar 这个包解压开看了下,才明白,它是在包内部准备好了python文件,直接import的是pyhon 代码当然没问题了.

python 或者 pyspark 和 java 交互, pyspark 里怎么调用自定义的 jar 包的更多相关文章
- IDEA里如何多种方式打jar包,然后上传到集群
关于IDEA里如何多种方式打jar包,然后上传到集群的问题? 前期准备,就是在,IDEA里,maven来创建项目.这里不多赘述. 1)用maven项目来打包,我推荐这个. (强烈推荐,简单又快速) S ...
- 分享:根据webservice WSDL地址自动生成java调用代码及JAR包
分享:根据webservice WSDL地址自动生成java调用代码及JAR包使用步骤:一.安装java 并配置JAVA_HOME 及 path二.安装ANT 并配置ANT_HOME三.解压WsdlT ...
- Android导入自定义的jar包时出现 E/AndroidRuntime(486): java.lang.NoClassDefFoundError错误
把自定义的jar包放在Android的工程的libs目录下,运行程序,会出现一下错误: 10-10 08:34:06.479: E/dalvikvm(486): Could not find clas ...
- java工程中不能存在多个数据库连接jar包
java工程中不能存在多个数据库连接jar包 比如存在mysql-java-connector.jar的,放入mssqlserver.jar就会产生冲突.只能存在一个类型的jar包.
- maven-assembly-plugin把java工程打包成为一个可执行的jar包
用Java写了一个小工具,使用maven java 工程.写完后,想打包成一个可执行的jar包. 使用maven的插件maven-assembly-plugin pom.xml里添加 <buil ...
- Java web开发中主要用到的jar包
1.Java开发中主要用到的jar包介绍:(1)java JDK基础开发包:java包和javax包.书写方式:import java.lang.reflect.InvocationTargetExc ...
- Java部署_IntelliJ创建一个可运行的jar包(实践)
一.本文目的:使用Intellij Idea 13生成一个简单可执行的jar,用于快速在linux验证某个功能 二.项目源码 1.结构图 2.StaticC1.java 1 2 3 4 5 6 7 ...
- 将Java应用程序打包成可执行的Jar包
可以将多个class文件打包为jar包,在指定程序入口点情况下,可以用 java –jar jar包名称 的方式调用jar包内主类的main函数. 程序源代码如下: //Math.java publi ...
- 怎么将java项目打包成双击就可以运行的jar包---fatjar
fatjar下载地址:http://pan.baidu.com/s/1cQ01o 下载fatJar插件,解压缩后是一个.../plugins/(net...)把plugins下面的(net..)文件夹 ...
- Hibernate项目里配置环境时,jar包配置不当会对测试结果产生影响。
问题情况: 如下图所示,该图中,显示了一堆错误的jar包.这是导致了Junit4测试通过了,数据库却没反应的原因. 原因: 之所以出现这种情况,eclipse其实已经告诉了我们原因.如下图所示,这些j ...
随机推荐
- Java全局唯一ID生成策略
在分布式系统中常会需要生成系统唯一ID,生成ID有很多方法,根据不同的生成策略,以满足不同的场景.需求以及性能要求. 1.数据库自增序列 这是最常见的一种方式,利用DB来生成全库唯一ID. 优点: 此 ...
- vscode配置项
因为vscode的默认配置,导致现在用的不是很舒服.总结了以下配置能让你的vscode用着更舒服. 1: 问题: 输入log按tab快速生成代码后,提示居然没了? 解决方案: "editor ...
- php页面调用微信扫一扫
function.php <?php define("appID", "微信公众号appId"); define("appsecret" ...
- oeasy教您玩转vim - 26 - 缩进设置
缩进设置 回忆上节课内容 这次了解了颜色的细节 设置 256 色模式 :set t_Co=256 然后确定了具体的各种颜色 还可以生成网页 :TOhtml 还有什么好玩的么? 缩进设置 在 ...
- 字符—字符与整数的关系&&常用的库函数_C
// Code file created by C Code Develop #include "ccd.h" #include "stdio.h" #incl ...
- SQL 注入漏洞详解 - Union 注入
1)漏洞简介 SQL 注入简介 SQL 注入 即是指 Web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 Web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在 ...
- 搭建lnmp环境-mysql(第五步)
版本mysql 5.7 先删除系统自带的db 新建文件夹/data/download 进入后下载 wget http://repo.mysql.com/mysql57-community-releas ...
- 从pytest源码的角度分析pytest工作原理
从pytest源码的角度分析pytest工作原理 从 pytest 源代码的角度来分析其工作原理,我们需要关注几个关键的部分,特别是 pytest 的启动过程以及测试的收集与执行.下面是基于 pyte ...
- linux常用命令(每日积累)
linux查看应用程序的进程号和端口号 lsof -i :port,查看指定端口运行的程序,同时还有当前连接. netstat -nupl (UDP类型的端口)netstat -ntpl (TCP ...
- Implementation of Reinforcement Learning with Meta-Critic Networks and GAE in a Human-Centered Framework
论文<Future of AI and Empowering Reinforcement Learning with Meta-Critic Networks and GAE in a Huma ...