Вы забыли объявить объект на Scala, чтобы часть Python могла его найти. Примерно так:
package za.co.absa.cobrix.spark.cobol.utils
import org.apache.spark.sql.{Column, DataFrame}
import scala.annotation.tailrec
import scala.collection.mutable
object SparkUtils {
def flattenSchema(df: DataFrame, useShortFieldNames: Boolean): DataFrame = {
val fields = new mutable.ListBuffer[Column]()
val stringFields = new mutable.ListBuffer[String]()
val usedNames = new mutable.HashSet[String]()
}
}
ВАЖНО: Также старайтесь не использовать перегрузку метода (или параметры по умолчанию, которые фактически приводят к перегрузке метода или другим трюкам ниже) ... это будет сложно перевести (и использовать его на стороне Python).
ПРИМЕЧАНИЕ: чтобы преодолеть отсутствие значений по умолчанию, просто явно передайте значение из части Python, и все готово, в этом случае просто дополнительный логический. Кроме того, вы можете создать значение по умолчанию на стороне Python, это безопаснее и полезно (особенно если у вас много вызывающих точек).