Performance SparkSQL—与多重比较相比,isIn()的性能
在一个运行在大约6亿行上的SparkSQL程序中,我需要根据在其中一列上运行UDF的输出来过滤结果。以下哪项性能更好 选项APerformance SparkSQL—与多重比较相比,isIn()的性能,performance,apache-spark,apache-spark-sql,Performance,Apache Spark,Apache Spark Sql,在一个运行在大约6亿行上的SparkSQL程序中,我需要根据在其中一列上运行UDF的输出来过滤结果。以下哪项性能更好 选项A val result = myDataframe .filter((callUDF("getPrice", $"product") equalTo 1) || (callUDF("getPrice", $"product") equalTo 5)) 选项B val result = myDataframe .filter(callUDF(
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()
从内存中的图形数据库中读取数据
本能地,我会说只运行一次UDF会更好,但我不知道运行isIn()
的含义是什么
你同意我的说法吗?我对Spark Sql没有太多的经验,但我只是在数百万行数据之间进行了连接,一行使用isin,另一行使用equalsto。equalsto的表现要好得多。在我的实验中,isin大约需要2-3小时,而equalsto大约需要30分钟