【发布时间】:2017-04-04 13:33:56
【问题描述】:
我的 Amazon S3 存储桶中有一个 .zip 格式的大文件(属性文件)。解压后大约 30 GB。该文件每 2 天更新一次。
INDEX HIEGHT GENDER AGE
00125 155 MALE 15
01002 161 FEMALE 18
00410 173 MALE 17
00001 160 MALE 20
00010 159 FEMALE 22
.
.
.
我的用例是这样的,我想在 1 个程序运行中遍历排序的属性文件一次。由于压缩文件大约 3.6 GB 并且每 2 天更新一次,因此我的代码每次都从 S3 下载它。 (也许我可以使用缓存,但目前我没有使用它。)
我希望对文件进行排序。由于解压后的文件很大,预计每次都会变大,所以我不想在代码运行期间解压。
我想要达到的目标如下:-
我还有其他文件——度量文件。它们的大小相对较小(~20-30 mb)并且是排序的。
INDEX MARKS
00102 45
00125 62
00342 134
00410 159
.
.
.
使用 INDEX,我想为每个 METRIC 文件创建 METRIC-ATTRIBUTE 文件。如果属性文件也被排序,我可以做一些类似于合并两个排序列表的事情,只取常见的 INDEX 行。这需要 O(SIZE_OF_ATTRIBUTE_FILE + SIZE_OF_METRIC_FILE) 空间和时间。
最好的排序方式是什么(属性文件)?首选 aws 解决方案。
【问题讨论】:
-
我不能使用 Aws Lambda,因为它的 /tmp 大小限制为 512 mb。 docs.aws.amazon.com/lambda/latest/dg/limits.html
-
如果你不/不能使用 lambda,你仍然可以使用 EMR 并且可以处理 zip 文件
-
ZIP 文件中数据的格式是什么(例如,它是压缩的 CSV 文件)?您能否提供有关您希望对该文件做什么的更多详细信息?例如,您是否需要仅按排序顺序处理数据?你在某处输出结果吗?如果您可以提供更多详细信息,我们可以提出更合适的解决方案。 (例如,Amazon EMR 在某些情况下可能很有用,具体取决于您打算如何处理结果数据。)
-
@JohnRotenstein:就像每行有 5-6 个单词,第一个单词被用作对其进行排序的索引。其余的是此特定索引的属性。还有第二个文件,该文件较小,约为 20 mb 并已排序。该文件包含一些与之相关的索引和指标。我想添加属性和指标。我想做一些事情,比如合并两个排序列表,只保留常见的。
-
请随时使用两个文件的样本和此类解释来更新您的问题,以便人们可以提出合适的选项。越详细,获得有用答案的机会就越大。
标签: sorting amazon-web-services amazon-s3 bigdata