我正在创建一个火花作业,该列需要使用Python编写的函数添加到数据框中。其余的处理是使用Scala进行的。
我找到了如何从Pyspark调用Java/Scala函数的示例:
- https://community.hortonworks.com/questions/110844/is-it-possible-to-call-a-a-scala-function-in-pythonp.html
- http://aseigneurin.github.io/2016/09/01/spark-calling-scala-cala-cola-code-from-pyspark.html
我发现发送数据的唯一示例是使用pipe
- 如何在同一火花项目中同时使用Scala和Python?
我是否有可能将整个数据框发送到python函数,使函数操纵数据并添加其他列,然后将结果数据框发送回Calla scala函数?
如果这是不可能的,我当前的解决方案是运行pyspark进程并调用多个scala函数来操纵数据框,这不是理想的。
只需从Python注册一个UDF,然后从Scala评估SQL语句,该语句使用该函数使用dataFrame - 工作于魅力,只是尝试过;)https://github.com/jupyter/docker-stacks/tree/master/all-spark-notebook是在托雷(Toree)运行笔记本的好方法,该笔记本将Scala和Python代码混合使用相同的Spark上下文。
我找到了这篇文章:
使用jupyter使用Scala,Spark和Python的机器学习:设置
它向您展示了如何设置使用Spark和Python的Jupyter笔记本。如果您只是在尝试可能足够的数据。