Как объяснено в этой статье , Взрыв происходит медленно в scala 2.11.8 и искре 2.0.2 . Не переходя к более высоким версиям искры, альтернативные методы для его улучшения также медленны. Поскольку проблема была исправлена в более поздних версиях spark, одним из подходов будет копирование фиксированного исходного кода. В поисках исходного кода, я нашел ссылку для взрыва в функциях, но я не знаю, как отслеживать функцию дальше . Как мне найти исходный код для работы Explode в новом исходном коде spark, так что я могу использовать его вместо текущей версии explode?
https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/generators.scala - это ссылка, которую, я думаю, вы ищете
Я смог найти его, расширив все импортные данные import org.apache._ в пределах https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/functions.scala, увидев, что функция разнесения была только def explode(e: Column): Column = withExpr { Explode(e.expr) }
import org.apache._
def explode(e: Column): Column = withExpr { Explode(e.expr) }
если вы хотите импортировать базовую функцию Explode, я считаю, что прямой импорт будет import org.apache.spark.sql.catalyst.expressions.Explode
import org.apache.spark.sql.catalyst.expressions.Explode