我有一个python脚本,需要访问和查询maxmind(.mmdb)文件类型。我目前的想法是将maxmind文件加载到hdfs的分布式缓存中,然后通过pig将其传递给我的python脚本。我现在的Pig剧本是:
SET mapred.cache.file /path/filelocation/;
SET mapred.createsymlink YES;
SET mapred.cache.file hdfs://localserver:8020/pathtofile#filename;
REGISTER 'pythonscript' USING jython AS myudf;
logfile= LOAD 'filename' USING PigStorage(',') AS (x:int);
RESULT = FOREACH logfile GENERATE myudf.pyFunc(x,"how to pass in MaxMind file");
在将文件加载到python脚本内部的分布式缓存之后,您对如何访问该文件有何想法?
谢谢
1条答案
按热度按时间vyswwuz21#
我想你可以这样做:
这是我在这个例子中使用的对应的my.py
差点忘了。。我是这么叫的。
它应该在您的本地目录中,以便python能够访问它。在该示例中,“filename”是符号链接的名称,您必须相应地进行更新。在您的例子中,您希望您的“filename”是您的maxmind文件,并且根据您在“a”中的值是什么,您可能需要将其更改回“as(x:int)”。
祝你好运!