zoukankan      html  css  js  c++  java
  • 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 代码当然没问题了.

    转载请注明出处 http://www.cnblogs.com/mashuai-191/
  • 相关阅读:
    javaScript hook
    封装
    javascript 数字验证
    new 运算符
    指针
    js中的call及apply
    每行显示2条数据的分页
    less语言特性(二) —— 混合
    less语言特性(一) —— 变量
    理解响应式布局设计
  • 原文地址:https://www.cnblogs.com/mashuai-191/p/12552763.html
Copyright © 2011-2022 走看看