是否可以从Scala调用python函数(spark)

时间:2017-09-15 16:54:30

标签: python scala apache-spark pyspark spark-dataframe

我正在创建一个spark作业,需要使用python编写的函数将列添加到数据框中。其余的处理都是使用Scala完成的。

我找到了如何从pyspark调用Java / Scala函数的示例:

我发现以另一种方式发送数据的唯一示例是使用pipe

我是否可以将整个数据帧发送到python函数,让函数操作数据并添加其他列,然后将结果数据帧发送回调用Scala函数?

如果这是不可能的,我目前的解决方案是运行pyspark进程并调用多个Scala函数来操作数据帧,这是不理想的。

2 个答案:

答案 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笔记本。如果您只是试验可能足够的数据。