在笔记本电脑上分享pyspark UDF

时间:2017-02-13 18:34:44

标签: python apache-spark pyspark

我经常在ipython笔记本中重复使用udfs,并试图找出是否有某种方式来共享代码。

我希望能够创建一个文件,让我们称之为sparktoolz.py

import pyspark.sql.functions as F
import pyspark.sql.types as T

def myfunc(foo):
    # do stuff to foo
    return transformed_foo

myfunc_udf = F.udf(myfunc, T.SomeType())

然后从与sparktoolz.py相同的目录中的任何给定笔记本执行以下操作:

from pyspark import SparkContext
from pyspark.sql import SQLContext

sc = SparkContext()
sqlContext = SQLContext(sc)
sc.addPyFile('sparktoolz.py')

from sparktoolz import myfunc_udf

df = sqlContext.read.parquet('path/to/foo')

stuff = df.select(myfunc_udf(F.col('bar')))

每当我尝试这样的事情时,笔记本都会找到sparktoolz.py,但会给我一个ImportError: cannot import name myfunc_udf

0 个答案:

没有答案