我想知道是否有可能在pig身上做这样的事情:一共有三列:“类型1”、“类型2”、“类型3”B101,159,74我想这样定义C列:如果A=="type1"那么C=B;否则C=0这在pig身上可能吗? 最佳答案 是的,这是可能的。你可以这样写:data=LOAD'$dataSource'usingAvroStorage();--data={A,B}data2=FOREACHdataGENERATEA,B,(A=='type1'?B:0)ASC;dumpdata2; 关于hadoop-pig
我有一个pig脚本,它通过json的“公司”部分加载文件。当我执行计数时,如果文件中缺少域(或为空),则计数为0。我怎样才能将它分组为空字符串并仍然对其进行计数?文件示例:{"company":{"domain":"test1.com","name":"test1company"}}{"company":{"domain":"test1.com","name":"test1company"}}{"company":{"domain":"test1.com","name":"test2company"}}{"company":{"domain":"test2.com","name":"t
ApachePigQuery执行需要多少时间?查询在PigLatin中获取多达400万个具有43个字段的元组(行)的记录。A=LOAD'/user/PigTest/year_14/mon_nov/6_sms_03_01.csv'USINGPigStorage(',');bt=foreachAgenerate$0asid,$3;dumpbt;ct=filterbtbyid==3981042;dumpct;dumpMinutesBetween(CurrentTime(),$ti);并将文件调用为:pig-paramti='date'try.pig我的系统环境是Linux。错误是:错误120
我在我的机器上运行以下命令:pig-xlocal-fHbase/load_hbase.pig这是我得到的PigStackTrace,希望能更好地理解我的问题。ERROR2998:Unhandledinternalerror.org/apache/hadoop/hbase/filter/WritableByteArrayComparablejava.lang.NoClassDefFoundError:org/apache/hadoop/hbase/filter/WritableByteArrayComparableatjava.lang.Class.forName0(NativeMeth
我通过命令行运行我的pig,我想在运行完成后查看所有Hadoop计数器。我已经编写了基于此blog写入Hadoop计数器的UDF,但我想测试它-当pig开始时我可以看到来自构造函数的日志,但后来我看不到日志目前我看到的只是简单的静态-见下文Counters:Totalrecordswritten:3487Totalbyteswritten:38078SpillableMemoryManagerspillcount:0Totalbagsproactivelyspilled:101Totalrecordsproactivelyspilled:12464701 最
将组记录拆分为不同的记录:例如:输入:(A,(3,2,3))输出到3行:一个,3A2A,3任何人都可以让我知道执行此操作的选项吗? 最佳答案 问题是当你把Arraylist的输出转换成tuple时,就很难达到你想要的效果,所以我推荐这种方法,这样很容易得到输出。在您的UDF代码中,不要创建Arraylist,而是将输出附加到以逗号分隔的字符串中,然后返回到pig脚本。UDF的最终输出应该是这样的字符串,即“3,2,3”然后使用下面的代码得到结果C=FOREACHBGENERATE$0,NewRollingCount(BagToStr
x=load'/home/manish/Work/inputs/testInput.txt'usingPigStorage(',')AS(key:chararray,value:int);y=groupxbtkey;r=foreachy{m=generatex.valueASone;ord_m=ORDERmBYonedesc;lim_m=LIMITord_m3;generategroup,lim_m;};获取错误为:2014-12-0920:07:45,978[main]ERRORorg.apache.pig.tools.grunt.Grunt-ERROR1200:mismatched
我使用自定义InputFormat和RecordReader创建了自定义loadFunc。每当InputFormat返回多个输入拆分时,PigSplit始终仅包含一个输入拆分并且仅使用一个映射器。实现太大,无法在此处发布,但是否有任何明显的原因可能导致这种情况发生?编辑:我正在使用pig0.13并且通过添加一些日志记录我发现Loadfunc创建的InputFormat返回包含两个输入拆分的列表,然后PigInputFormat使用此列表创建PigSplits.我仍然找不到Pig在哪里省略了这些输入拆分中的一个而只使用了第一个。这是PigInputFormat.java(src)第273
文件有数据:A12345B32122C23232只运行一次pig脚本并将第一个record(A12345)存储在一个文件中,secondrecord(B32122)在第二个文件中以及third(c23232)在第三个文件中。现在,如果我们运行pig脚本,它将为每个商店运行作业。请让我知道选项。 最佳答案 使用SPLIT运算符根据某些表达式将关系的内容划分为两个或多个关系。根据表达式中陈述的条件:Atuplemaybeassignedtomorethanonerelation.Atuplemaynotbeassignedtoanyre
在Mac10.7.5上安装Hadoop2.6.0的单节点安装程序时,手册http://hadoop.apache.org/docs/r1.2.1/single_node_setup.html需要更新java_home。即,在准备启动Hadoop集群部分,它说:“在发行版中,编辑文件conf/hadoop-env.sh以至少将JAVA_HOME定义为Java安装的根目录。”我使用终端查询'/usr/libexec/java_home'的结果,它是/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home,对于java_