0
我有一個Spark SQL DF,其中我嘗試調用一個UDF [我使用Spark SQL創建的udf
。在Spark SQL DataFrame中調用UDF方法中的其他方法/變量
val udfName = udf(somemethodName)
val newDF = df.withColumn("columnnew", udfName(col("anotherDFColumn"))
我試圖使用存儲爲val
的somemethodName內的另一個DF,但DF即將爲空。
只有當我使用newDF
中的where子句時纔會發生這種情況。
我錯過了什麼嗎?UDF方法中不可能使用其他變量/方法嗎?
或者我必須做廣播嗎?目前我正在本地運行,而不是在羣集中運行。
實際上'Dataset' /'Dataframe'可以被序列化。只是不能用於UDF封閉。 – 2016-11-23 17:37:03
@Tzach Zohar:數據框之間沒有公共密鑰,所以我無法加入,另一個數據框只是一個查找文件,有一些範圍值,如0到60等。我如何使用UDF內的查找?我希望我可以讀取UDF方法內的查找文件,但對於我需要加載整個文件的每一條記錄... – Shankar
@LostInOverflow:我可以使用在UDF方法名稱之外定義的列表嗎?我正打算從文件中讀取範圍並創建一個列表,然後使用UDF方法中的列表..它會工作嗎? – Shankar