使用HDFS分布式缓存中存储的python脚本访问文件

比尤斯特

我有一个python脚本,需要访问和查询MaxMind(.mmdb)文件类型。我目前的想法是将MaxMind文件加载到HDFS的分布式缓存中,然后通过Pig传递给我的Python脚本。我当前的猪脚本是:

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脚本内部的分布式缓存后如何访问文件的任何想法?

谢谢

科迪·史蒂文斯(Cody Stevens)

我认为您可以这样做:

set mapred.cache.files hdfs:///user/cody.stevens/testdat//list.txt#filename;
SET mapred.createsymlink YES; 
REGISTER 'my.py' USING jython AS myudf;
a = LOAD 'hdfs:///user/cody.stevens/pig.txt' as (x:chararray);
RESULT = FOREACH a GENERATE myudf.list_files(x,'filename');
STORE RESULT into '$OUTPUT';

这是我在此示例中使用的对应的my.py

#/usr/bin/env python 
import os 

@outputSchema("ls:chararray}")
def list_files(x,f):
    #ls =  os.listdir('.')
    fin = open(f,'rb')
    return [x,fin.readlines()]


if __name__ == '__main__':
    print "ok" 

差点忘了..我这样称呼它。

pig -param OUTPUT=/user/cody.stevens/pigout -f dist.pig

它应该在您的本地目录中,以便python应该能够访问它。在该示例中,“文件名”是符号链接的名称,您将必须进行相应的更新。在您的情况下,您希望将“文件名”作为maxmind文件,并且可能需要根据“ a”中的值将其更改回“ as(x:int)”。

祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从存储在HDFS分布式缓存中的文件的路径中获取文件名

来自分类Dev

从分布式缓存或HDFS输出读取

来自分类Dev

通过分布式缓存在Mapper中访问文件

来自分类Dev

Hadoop分布式文件系统与分布式缓存

来自分类Dev

使用分布式缓存访问Hadoop中的Maxmind Geo API

来自分类Dev

在Hadoop分布式缓存中创建和放置文件

来自分类Dev

Elixir中的分布式缓存

来自分类Dev

.NET中的分布式缓存

来自分类Dev

风暴中的分布式缓存

来自分类Dev

Hadoop中的分布式缓存概念

来自分类Dev

使用分布式缓存进行锁定

来自分类Dev

使用分布式缓存-HIVE流

来自分类Dev

使用memcached进行分布式缓存

来自分类Dev

使用分布式缓存-HIVE流

来自分类Dev

Hadoop 1.2.1 - 使用分布式缓存

来自分类Dev

分布式存储大量文件

来自分类Dev

Cassandra作为分布式缓存的数据存储

来自分类Dev

使用 Queue() 在分布式应用程序中与 python 共享文件

来自分类Dev

什么是分布式缓存?

来自分类Dev

什么是分布式缓存?

来自分类Dev

Hadoop分布式缓存

来自分类Dev

Pig分布式缓存

来自分类Dev

CoreOS和HDFS-在Linux容器/ Docker中运行分布式文件系统

来自分类Dev

锁定分布式系统中的文件

来自分类Dev

Hadoop中的分布式文件处理?

来自分类Dev

在分布式数据库中存储唯一身份访问者

来自分类Dev

关于Hadoop中的分布式缓存的困惑

来自分类Dev

如何使用Hibernate进行分布式查询缓存?

来自分类Dev

Java中的分布式Hashmap或分布式信息存储