草庐IT

PIG 中 Elephant-Bird UDF 中的 JSON 数组字段处理

一个关于PIG中JSON处理的快速问题。我尝试了一些名为Elephant-Bird的JsonLoader来加载和处理JSON数据,如下所示:{"SV":1,"AD":[{"ID":"46931606","C1":"46","C2":"469","ST":"46931","PO":1},{"ID":"46721489","C1":"46","C2":"467","ST":"46721","PO":5}]}加载器适用于简单字段,但不适用于任何数组字段。我不知道如何使用此UDF或以任何其他方式访问数组中的元素(上面的“AD”字段)?请指教。 最佳答案

hadoop - 使用 'merge' 加入 PIG

我是Hadoop/PIG初学者。谁能告诉我这两者的区别grunt>A=joinAby$1,Bby$1using'merge';和grunt>A=加入A1美元,B加入1美元;我有2个文件1.txt和2.txt,它们具有以下数据1.txt1乙3C5D72.txtAA1BB2CC4DD6我希望输出像这样合并在一起1AA1BB2乙3CC4C5DD6D7“使用‘合并’”会给我想要的输出吗?我试过了,但是不行。你能告诉我我在这里缺少什么吗。 最佳答案 听起来您获得的是内部联接(数据集通过公共(public)键联接)而不是外部联接(这就是您从所需

python - 在 CPython 中嵌入 Pig

有谁知道在cpython脚本中嵌入pig的方法,类似于RDBMS的可用方法?我搜索过,但没有运气。我宁愿不使用Jython,因为我正在尝试使用jython中不可用的各种cpython库来处理数据。 最佳答案 最近在Pig0.12中添加了对CPython的支持:http://blog.mortardata.com/post/62334142398/hadoop-python-pig-trunk 关于python-在CPython中嵌入Pig,我们在StackOverflow上找到一个类似的

hadoop - 如何使用 PIG 脚本合并两个文件?

我有两个文件。我想按顺序合并它。我如何使用Pig/PigLatin脚本执行此操作?f1.csv1,aa1,aa1,ab1,ac2,bd2,bd2,bd4,ab4,bcf2.csv1,xxx1,xxy1,xyx1,yxx1,xyy1,yyx2,pqr2,pq2,pqrs2,pqs3,def我需要的输出是1,aa,1,xxy1,aa,1,xyx1,ab,1,yxx1,ac,1,xyy2,bd,2,pqr2,bd,2,pq2,bd,2,pqrs任何人都可以帮助我应该使用哪个连接以及如何获得它? 最佳答案 1)加载每个文件。2)然后将它们联

regex - Pig Hadoop 匹配默认值?

每个RegExp都略有不同。当谈到Pig的匹配功能时,它:X=FILTERABY(f1matches'apache');==X=FILTERABY(f1matches'^apache$');或X=FILTERABY(f1matches'.*apache.*');?换句话说,.*是自动隐含在match中还是始终需要包含它? 最佳答案 Pig中的正则表达式格式是Java所支持的格式,如here所述.换句话说,没有任何暗示,如果你想要.*你必须专门将它添加到matches语句中,就像你在Java中做的一样Pattern.compile.

hadoop - 如何使用 PIG 统计独立用户数

以下代码并没有准确返回我要计算的内容;唯一用户的数量。有什么想法吗?data=LOAD'input_initial'AS(user_id,item_id,rating,timestamp);data=FOREACHdataGENERATEuser_id,item_id;STOREdataINTO'input_final';data_users=FOREACHdataGENERATEuser_id;group_users=GROUPdata_usersBYuser_id;count_users=FOREACHgroup_usersGENERATECOUNT(data_users);STO

windows - Windows 7 上没有 Hadoop 的 Pig

我试图在Windows7机器上运行PigUnit测试,然后在Ubuntu集群上运行实际的pig脚本,我开始认为我对“withouthadoop”的理解是不正确的。p>DoIneedtoinstallHadooptolocallyrunaPigUnittestonaWindows7machine?我安装了:eclipse朱诺和Ant西格温我设置:JAVA_HOME=C:\ProgramFiles\Java\jdk1.6.0_39PIG_HOME=C:\Users\john.doe\Java\eclipse\pigPIG_CLASSPATH=%PIG_HOME%\bin我使用eclipse

hadoop - 在 Pig Latin 中将袋子变成数组

我正在对一些数据集进行一些转换,需要发布为一种看起来很正常的格式。当我运行describe时,当前我的最终设置看起来像这样:{memberId:long,companyIds:{(subsidiary:long)}}我需要它看起来像这样:{memberId:long,companyIds:[long]}companyIds是long类型ID数组的键?我真的在为如何以这种方式操纵事物而苦苦挣扎?有任何想法吗?我试过使用FLATTEN和其他命令来了解是否有用。我正在使用AvroStorage将文件写入此模式:我需要将此数据写入的字段架构如下所示:"fields":[{"name":"mem

hadoop - Pig有洗牌功能吗?

我的问题是pig中是否有内置函数来洗牌元组/包?raw_record=LOAD'$inputPath'--USINGcom.test.parser.TestParser;record_project=FOREACHraw_recordGENERATEfield1,field2,field3,field4;sl_record=FILTERrecord_projectBY(field1=='1'ORfield1=='2');splitsl_recordintorec1iffield1=='1',rec2iffield1=='2';rec2Sample=SAMPLErec2$sampling

hadoop - 在 PIG 中一次左外连接超过 2 个关系

我正在尝试在pig的单个语句中对2个以上的关系执行左外连接。可能吗?问候哈里什 最佳答案 不幸的是,一步中的多路连接仅适用于内部连接。取自theofficialdocumentation:Usage...Outerjoinswillonlyworkfortwo-wayjoins;toperformamulti-wayouterjoin,youwillneedtoperformmultipletwo-wayouterjoinstatements.因此,在他们添加可能性之前,这不会很快出现(没有开放的JIRA正在处理它),您将需要在2个