Github user cloud-fan commented on a diff in the pull request: https://github.com/apache/spark/pull/20024#discussion_r159572589 --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala --- @@ -206,6 +208,11 @@ case class Cast(child: Expression, dataType: DataType, timeZoneId: Option[String case DateType => buildCast[Int](_, d => UTF8String.fromString(DateTimeUtils.dateToString(d))) case TimestampType => buildCast[Long](_, t => UTF8String.fromString(DateTimeUtils.timestampToString(t, timeZone))) + case ar: ArrayType => + buildCast[ArrayData](_, a => { + val arrayData = CatalystTypeConverters.convertToScala(a, ar).asInstanceOf[WrappedArray[_]] --- End diff -- let's avoid to do this, I'm thinking about ``` buildCast[ArrayData](_, array => { val res = new StringBuilder res.append("[") val toStringFunc = castToString(et) var i = 0 while (i < array.numElements) { res.append(toStringFunc(array.get(i, et))) res.append(", ") i += 1 } // final cleanup and add "]" }) ```
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org