如何在Pyspark内部使用Scala类

如何在Pyspark内部使用Scala类,第1张

如何在Pyspark内部使用Scala类

是的,尽管不是很琐碎,但它是可能的。通常,您需要一个Java(友好的)包装器,这样就不必处理Scala功能,而这些功能使用普通Java不能轻松表达,因此在Py4J网关中无法很好地发挥作用。

假设您的课程是int包

com.example
,并
Dataframe
调用了Python
df

df = ... # Python Dataframe

您必须:

  1. 使用您最喜欢的构建工具来构建jar 。

  2. 将其包括在驱动程序类路径中,例如使用

    --driver-class-path
    PySpark shell /的参数
    spark-submit
    。根据确切的代码可能无法使用通过它
    --jars
    以及

  3. 从Python

    SparkContext
    实例提取JVM实例:

    jvm = sc._jvm
  4. SQLContext
    SQLContext
    实例中提取Scala :

    ssqlContext = sqlContext._ssql_ctx
  5. Dataframe
    从中提取Java
    df

    jdf = df._jdf
  6. 创建的新实例

    SimpleClass

    simpleObject = jvm.com.example.SimpleClass(ssqlContext, jdf, "v")
  7. 调用

    exe
    方法并使用Python包装结果
    Dataframe

    from pyspark.sql import Dataframe

    Dataframe(simpleObject.exe(), ssqlContext)

结果应该是有效的PySpark

Dataframe
。您当然可以将所有步骤组合到一个调用中。

重要提示 :仅当仅在驱动程序上执行Python代码时,此方法才可行。不能在Python *** 作或转换中使用。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5643562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存