I am trying to convert string to scala type by using asInstanceof method, while executing this am getting below exception
java.lang.ClassCastException: java.lang.String cannot be cast to scala.Tuple2
my code as below
import org.apache.spark.sql.Column
import org.apache.spark.sql.functions.col
val cond : String = "(null, col(field).isNotNull)" // Will get this condition from properties file.
type mutliColumnType = (Column, Column)
def condition( value : String , field : String = "somefield") : mutliColumnType = {
value match {
case "a" => (null, col(field).isNull)
case _ => convertStringToMutliColumnType(cond) //cond.asInstanceOf[mutliColumnType]
}
}
condition("a") // returns data
condition("ab") // Exception
How can we convert string to multiColumnType here ?
UPDATE:
Currently I written below code snippet to parse string to mutliColumnType :
def convertStringToMutliColumnType(cond : String) : mutliColumnType = {
val colArray=cond.trim.substring(1, cond.length-1).split(",")
(col(colArray(0)), col(colArray(1)))
}