目前,我在 Amazon EMR 上运行 Pig 脚本以从 S3 加载一堆文件,然后我将进行过滤处理并将数据分组phone number
到(phonenumber:chararray, bag:{mydata:chararray})
. 接下来,我必须将每个电话号码存储到不同的 S3 存储桶中(可能是我有权访问的不同账户中的存储桶)。似乎org.apache.pig.piggybank.storage.MultiStorage
是这里最好的用途,但它不起作用,因为我面临两个问题:
- 有很多电话号码(大约 20,000 个),将每个电话号码存储到不同的 S3 存储桶中非常慢,甚至程序内存不足。
- 我无法查找我的查找表来决定存储桶的位置。
所以我想知道是否有人可以帮忙?第二个可能可以通过编写我自己的UDF存储函数来解决,但是对于第一个,如何解决呢?谢谢。