[SparkSQL] allow UDF on struct