2016-10-25 8 views
1

私はPySpark(Spark-clusterに接続するJupyter Notebook内)といくつかのUDFを使用しています。 UDFは、追加のパラメータとしてリストをとり、私はこのようなUDFを構築:PySparkでのUDFリロード

my_udf = F.udf(partial(my_normal_fn, list_param=list), StringType())

すべてが機能を実行に関しては、正常に動作します。しかし、私はUDFが決して更新されないことに気づいた。 明確にする:リストの要素を変更するなどしてlistを更新すると、UDFは更新されません。古いリストの古いバージョンはまだ使用されています。私はノート全体をもう一度実行しても。 新しいバージョンのリストを使用するには、Jupyter Kernelを再起動する必要があります。どちらが本当に迷惑で...

何か考えていますか?

答えて

0

解決策が見つかりました。それを変更する

def my_normal_fn(x, list_param=[]): 
    dosomestuffwith_x_and_list_param 

トリックをした

def my_normal_fn(x, list_param): 
    dosomestuffwith_x_and_list_param 

へ:私の my_normal_fn

は、次のシグネチャを持っていました。詳細については、 hereを参照してください。

SparkML-SlackチャンネルのユーザーDrjones78に感謝します。

関連する問題