Я пытаюсь запустить этот пример искры в InteliJ. Однако компилятор жалуется на ключевое слово after:
TheAfterWord does not take parameters after {
Сводка кода:
class SortMergeJoinSpec extends FlatSpec with Matchers {
val sparkSession = SparkSession.builder().appName("Sort-merge join test")
.master("local[*]")
.config("spark.sql.join.preferSortMergeJoin", "true")
.config("spark.sql.autoBroadcastJoinThreshold", "1")
.config("spark.sql.defaultSizeInBytes", "100000")
.getOrCreate()
after {
sparkSession.stop()
}
"sort-merge join" should "be used when neither broadcast nor hash join are possible" in {
... bla bla bla
}
"for not sortable keys the sort merge join" should "not be used" in {
... bla bla bla
}
private def toAssertRowInterval(row: Row): String = {
... bla bla bla
}
private def toAssertRow(row: Row): String = {
... bla bla bla
}
}
Полный код: Пример соединения сортировка-слияние
Возможно, проблема связана с определением класса. У них нет определения класса в примере, поэтому мне пришлось добавить его самому.
@SarveshKumarSingh спасибо. Пожалуйста, напишите это как ответ, и я приму его.





Как прокомментировал Сарвеш Кумар Сингх, мне пришлось объявить класс следующим образом:
class SortMergeJoinSpec extends FlatSpec with Matchers with BeforeAndAfter {
class SortMergeJoinSpec extends FlatSpec with Matchers with BeforeAndAfter