Spark减少了reduceByKey中的一些键

时间:2016-06-03 12:33:16

标签: python scala apache-spark mapreduce

将大文件加载到RDD0后,我创建(非常耗时)RDD1

((k1,k2), value)

并申请reduceByKey。对于RRD0,我需要创建RDD2

((k1,k3), value)

它的创作同样耗时,并应用另一个reduceByKey

我可以创建RDD12

((k1,k2,k3), value)

首先在reduceByKey上应用(k1,k2),然后在(k1,k3)上应用RDD1,以便节省时间,而不是创建RDD2HttpResponseMessage result = null; var stream = new MemoryStream(File.ReadAllBytes(tempFileName)); result = Request.CreateResponse(HttpStatusCode.OK); result.Content = new StreamContent(stream); result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); result.Content.Headers.add("fileName", Path.GetFileName(tempFileName )); File.Delete(tempFileName); return result;

1 个答案:

答案 0 :(得分:0)

您的第一个操作应该是flatMap并返回

[((k1,k2), value1), ((k1,k3)), value2)]

然后运行reduceByKey,你就会得到你的结果