我希望在piglatin(hadoop-ay)的格式/样式方面走捷径。有人知道我在哪里可以找到风格指南吗? 最佳答案 这里有一些很好的例子:https://github.com/Ganglion/sounder 关于Hadooppig拉丁风格指南?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2035720/
我有一个要在Pig中访问的Hadoop数据存储,但没有很多关于它的文档,而且我是Pig的新手,所以我正在寻找与“SHOWTABLES”等效的Pig。当我连接到MySQL数据库时,我可以执行此操作并大致了解其中的数据;我找到了几个教程,但没有任何内容。如果不是,是否有其他方法可以让我自己定位到我一无所知的Hadoop数据存储?预计到达时间:这将是在交互模式下运行Pig时,而不是加载脚本。可能很明显,但我想我应该提一下。 最佳答案 我能看到的最接近“显示表”的是“历史”命令,它有效地列出了所有创建的别名。grunt>history1a=
我正在尝试使用Pig计算百分位数。我需要使用属性对数据进行分组,并根据销售额计算组中每个元组的百分位数。我发现没有内置的Pig函数可以执行此操作。想知道以前是否有人遇到过类似的问题可以帮助我。 最佳答案 如JaiPrakash所述,您可以使用UDFStreamingQuantile来自ApacheDataFu图书馆。由于我已经准备好示例,因此我将其复制到此处。输入item1,234item1,324item1,769item2,23item2,23item2,45PIG脚本registerdatafu-1.2.0.jar;defin
我是新手,如果问题看起来很愚蠢,请原谅我。我已经安装了hadoop1.2.1,基本的wordcount示例在我的本地运行良好,因此为了进行下一级别的探索,我安装了Pig0.13.0。当我刚刚尝试运行pig-help时,它似乎工作正常。但是当我运行pig版本时,我得到如下的IOException:14/08/0601:00:08INFOpig.ExecTypeProvider:TryingExecType:LOCAL14/08/0601:00:08INFOpig.ExecTypeProvider:TryingExecType:MAPREDUCE14/08/0601:00:08INFOpi
我的要求是通过在pig脚本中使用单行输入来生成多行输出。有哪些可能的解决方案? 最佳答案 这个想法是将您输入的行转换成一个包,然后将其展平。这可能是2种情况:阅读文本:txt=load'/pig_fun/input/text.txt'usingTextLoader();words=foreachtxtgenerateTOKENIZE($0);pivoted=foreachwordsgenerateFLATTEN($0);dumppivoted;输入:Myrequirementistogeneratemultiplelinesofou
嗨,stackoverflow社区;我对pig完全陌生,我想将结果存储在一个文本文件中并根据需要命名。是否可以使用STORE函数执行此操作。我的代码:a=LOAD'example.csv'USINGPigStorage(';');b=FOREACHaGENERATE$0,$1,$2,$3,$6,$7,$8,$9,$11,$12,$13,$14,$20,$24,$25;STOREbINTO‘myoutput’;谢谢。 最佳答案 是的,您将能够将结果存储在myoutput.txt中,并且您可以使用PigStorage将数据加载到包含任何
我有两个数据集(1M唯一字符串)和(1B唯一字符串);我想知道有多少字符串在两个集合中是通用的,并且想知道使用ApachePig获取数字的最有效方法是什么? 最佳答案 您可以先加入两个文件,如下所示:A=LOAD'/joindata1.txt'AS(a1:int,a2:int,a3:int);B=LOAD'/joindata2.txt'AS(b1:int,b2:int);X=JOINABYa1,BBYb1;然后你可以计算行数:grouped_records=GROUPXALL;count_records=FOREACHgrouped
我创建了一个文件夹,用于使用Store命令从Pig进程中删除结果文件。它第一次工作,但第二次它提示该文件夹已经存在。这种情况的最佳做法是什么?关于此主题的文档很少。我的下一步是将文件夹重命名为原始文件名,以减少这种影响。有什么想法吗? 最佳答案 你可以执行fscommands从Pig中,并且应该能够通过在运行STORE命令之前发出fs-rmr命令来删除目录:fs-rmrdirSTOREAinto'dir'usingPigStorage();唯一巧妙的是fs命令不需要目录名称周围的引号,而store命令确实需要目录名称周围的引号。
我有一组整数值,我想将它们分组到一堆容器中。示例:假设我有1到1000之间的一千个点,我想做20个bin。有没有办法将它们分组到一个bin/array中?此外,我不会提前知道范围有多宽,因此我无法硬编码任何特定值。 最佳答案 如果您有最小值和最大值,则可以将范围除以bin的数量。例如,--foo.pigids=load'$INPUT'as(id:int);ids_with_key=foreachidsgenerate(id-$MIN)*$BIN_COUNT/($MAX-$MIN+1)asbin_id,id;group_by_id=g
我有以下数据的例子id:long,list:{(itemId:Long,itemName:charArray)}在我的数据中,list可以是一包元组或null。我想把null改成一个空包(由0个元素组成)我试过类似的东西:answer=FOREACHdataGENERATE(listisnull?{}:list)ASlist;它说{}和list是不兼容的架构。我想知道如何创建一个具有兼容架构的空包我最终这样做了并且成功了:answer=FOREACHdataGENERATE(listisnull?(bag{tuple(long,chararray)}){}:list)ASlist:{(