Accidentally exponential behavior in Spark
1–10 of 38 posts
Re: Accidentally exponential behavior in Spark
#2Re: Accidentally exponential behavior in Spark
#3Re: Accidentally exponential behavior in Spark
#4Re: Accidentally exponential behavior in Spark
#5 val transformedLeftTemp = transform(tree.left)
val transformedLeft = if (transformedLeftTemp.isDefined) {
transformedLeftTemp
} else NoneRe: Accidentally exponential behavior in Spark
#6Good read - fwiw if this is your blog some of your links are broken and think they are local - https://heap.io/blog/%E2%80%9Dhttps://github.com/apache/spar...
Re: Accidentally exponential behavior in Spark
#7Re: Accidentally exponential behavior in Spark
#8Why not just... val transformedLeftTemp = transform(tree.left) val transformedLeft = if (transformedLeftTemp.isDefined) { transformedLeftTemp } else None
The rhetorical question saying that surely that weird refactor of two different functions into one, followed by calling that new, non-trivial function twice for no reason surely shouldn't affect performance.. He already lost me during the premise of the article.
Re: Accidentally exponential behavior in Spark
#9Spark is this weird ecosystem of people who take absolutely trivial concepts in SQL, bury their heads in the sand and ignore the past 50 years of RDBMS evolution, and then write extremely complicated (or broken) and expensive to run code. But whatever it takes to get Databricks to IPO! Afterwards the hype will die down and everyone will collectively abandon it just like MongoDB except for the unfortunate companies wi…
Re: Accidentally exponential behavior in Spark
#10Why not just... val transformedLeftTemp = transform(tree.left) val transformedLeft = if (transformedLeftTemp.isDefined) { transformedLeftTemp } else None
It boggles my mind that the author wrote an entire long article based on this. The rhetorical question saying that surely that weird refactor of two different functions into one, followed by calling that new, non-trivial function twice for no reason surely shouldn't affect performance.. He already lost me during the premise of the article.
Then, ne writes some code that works around the library bug by modifying the input losslessly into something that's more easily processed by the library.
Finally, ne patches the library bug and shares the patch.
All of this is also kinda fucking obvious to not just me, but a lot of people, so I'm having a really hard time grasping if you've mixed up the illustrative simplification with the actual code, or if you think that the best engineering approach is to always patch your environment bugs instead of modifying your input, or if you just don't have a Github account or for some other reason can't read the patch.
Between that patch and https://github.com/apache/spark/pull/24910 you can see why the code is what it is.