我正在创建一个spark作业,需要使用python编写的函数将列添加到数据框中。其余的处理都是使用Scala完成的。
我找到了如何从pyspark调用Java / Scala函数的示例:
我发现以另一种方式发送数据的唯一示例是使用pipe
我是否可以将整个数据帧发送到python函数,让函数操作数据并添加其他列,然后将结果数据帧发送回调用Scala函数?
如果这是不可能的,我目前的解决方案是运行pyspark进程并调用多个Scala函数来操作数据帧,这是不理想的。
答案 0 :(得分:1)
只需从Python注册一个UDF,然后从Scala评估一个针对该DataFrame使用该函数的SQL语句-就像一个超级按钮一样工作,就尝试了;) https://github.com/jupyter/docker-stacks/tree/master/all-spark-notebook是在Toree中运行笔记本的好方法,该笔记本将Scala和Python代码混合在一起,调用相同的Spark上下文。
答案 1 :(得分:0)
我找到了这篇文章:
Machine Learning with Jupyter using Scala, Spark and Python: The Setup
它向您展示了如何设置同时使用Spark和Python的Jupyter笔记本。如果您只是试验可能足够的数据。