Skip to content

Commit 59f03eb

Browse files
committed
Reuse Text in saveAsTextFile
1 parent 6ee6aa7 commit 59f03eb

File tree

1 file changed

+14
-2
lines changed
  • core/src/main/scala/org/apache/spark/rdd

1 file changed

+14
-2
lines changed

core/src/main/scala/org/apache/spark/rdd/RDD.scala

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1186,7 +1186,13 @@ abstract class RDD[T: ClassTag](
11861186
// same bytecodes for `saveAsTextFile`.
11871187
val nullWritableClassTag = implicitly[ClassTag[NullWritable]]
11881188
val textClassTag = implicitly[ClassTag[Text]]
1189-
val r = this.map(x => (NullWritable.get(), new Text(x.toString)))
1189+
val r = this.mapPartitions { iter =>
1190+
val text = new Text()
1191+
iter.map { x =>
1192+
text.set(x.toString)
1193+
(NullWritable.get(), text)
1194+
}
1195+
}
11901196
RDD.rddToPairRDDFunctions(r)(nullWritableClassTag, textClassTag, null)
11911197
.saveAsHadoopFile[TextOutputFormat[NullWritable, Text]](path)
11921198
}
@@ -1198,7 +1204,13 @@ abstract class RDD[T: ClassTag](
11981204
// https://issues.apache.org/jira/browse/SPARK-2075
11991205
val nullWritableClassTag = implicitly[ClassTag[NullWritable]]
12001206
val textClassTag = implicitly[ClassTag[Text]]
1201-
val r = this.map(x => (NullWritable.get(), new Text(x.toString)))
1207+
val r = this.mapPartitions { iter =>
1208+
val text = new Text()
1209+
iter.map { x =>
1210+
text.set(x.toString)
1211+
(NullWritable.get(), text)
1212+
}
1213+
}
12021214
RDD.rddToPairRDDFunctions(r)(nullWritableClassTag, textClassTag, null)
12031215
.saveAsHadoopFile[TextOutputFormat[NullWritable, Text]](path, codec)
12041216
}

0 commit comments

Comments
 (0)