Details
Description
Don't use zip and scala collection methods to avoid garbage collection
val partitionPath = partitionColumns.zip(row.toSeq).map { case (col, rawValue) => val string = if (rawValue == null) null else String.valueOf(rawValue) val valueString = if (string == null || string.isEmpty) { defaultPartitionName } else { PartitioningUtils.escapePathName(string) } s"/$col=$valueString" }.mkString.stripPrefix(Path.SEPARATOR)
We can probably use catalyst expressions themselves to construct the path, and then we can leverage code generation to do this.