我正在创建一个 Spark 作业,需要使用用 python 编写的函数将列添加到数据帧中。其余的处理是使用 Scala 完成的。
我找到了如何从 pyspark 调用 Java/Scala 函数的示例:
- https://community.hortonworks.com/questions/110844/is-it-possible-to-call-a-scala-function-in-pythonp.html https://community.hortonworks.com/questions/110844/is-it-possible-to-call-a-scala-function-in-pythonp.html
- http://aseigneurin.github.io/2016/09/01/spark-calling-scala-code-from-pyspark.html http://aseigneurin.github.io/2016/09/01/spark-calling-scala-code-from-pyspark.html
我发现以其他方式发送数据的唯一示例是使用pipe
- 如何在同一个 Spark 项目中同时使用 Scala 和 Python? https://stackoverflow.com/questions/32975636/how-to-use-both-scala-and-python-in-a-same-spark-project
我是否可以将整个数据帧发送到 python 函数,让该函数操作数据并添加其他列,然后将生成的数据帧发送回调用 Scala 函数?
如果这是不可能的,我当前的解决方案是运行 pyspark 进程并调用多个 Scala 函数来操作数据帧,这并不理想。
只需从 Python 注册一个 UDF,然后从 Scala 评估一个针对 DataFrame 使用该函数的 SQL 语句 - 就像一个魅力一样,只需尝试一下即可;)https://github.com/jupyter/docker-stacks/tree/master/all-spark-notebook https://github.com/jupyter/docker-stacks/tree/master/all-spark-notebook是在 Toree 中运行笔记本的好方法,它混合了调用相同 Spark 上下文的 Scala 和 Python 代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)