instr
не предназначен для использования так, как вы хотите его использовать, но вы всегда можете попробовать определить udf для выполнения задания:
scala> val instr2_ : (String, String) => Int = (str, sub) => str.indexOfSlice(sub)
// instr2_: (String, String) => Int = <function2>
scala> val instr2 = udf(instr2_)
// instr2: org.apache.spark.sql.expressions.UserDefinedFunction = UserDefinedFunction(<function2>,IntegerType,Some(List(StringType, StringType)))
scala> df.withColumn("KOL3", instr2($"KOL2",$"KOL1")).show
// +----+---------+----+
// |KOL1| KOL2|KOL3|
// +----+---------+----+
// | 123|940932123| 6|
// | 940|123940932| 3|
// | 932|940123932| 6|
// +----+---------+----+