0
在SparkSQL程序中,運行約6億行,需要根據其中一列上運行的UDF的輸出過濾結果。以下哪一項表現會更好?SparkSQL - isIn()的性能與多重比較的比較
選項A
val result = myDataframe
.filter((callUDF("getPrice", $"product") equalTo 1) || (callUDF("getPrice", $"product") equalTo 5))
選項B
val result = myDataframe
.filter(callUDF("getPrice", $"product").isIn(1,5))
product
是字符串,並且從getPrice()
內存中的圖形DB讀取。
本能地說,只運行一次UDF會更好,但我不知道運行isIn()
會帶來什麼影響。
您是否同意我的觀點?