草庐IT

sql - PIG - 如何按具有多个条目的字段分组

我希望能够在这里按小时分组,我知道我将提交多个小时条目。例如下面的第11个小时会出现多次。我该怎么做?hour,windSpeed11,3.62,6.811,2.513,5.014,8.911,3.2所以我有这个,我只想按小时分组举个例子我们想要{11:3.6,2.5,3.2}和remanings因为只有一个值会归入它自己的值{14:8.9}{2:6.8}answer=FOREACHweather_dataGENERATE$0AShour,$1asspeed 最佳答案 按小时分组A=FOREACHweather_dataGENERA

python - 无法将 pig 元组传递给 python UDF

我有master.txt,它有10K条记录,所以它的每一行都是一个元组,并且需要将整个元组传递给pythonUDF。由于它有多个记录,因此在存储p2preportmap时会出现以下错误。请帮忙错误如下:Unabletoopeniteratorforaliasp2preportmap.Backenderror:org.apache.pig.backend.executionengine.ExecException:ERROR0:Scalarhasmorethanonerowintheoutput.1st:(010301,MTS,MM),2nd:(010B06,MTS,TN)(common

hadoop - Pig 用户定义的函数不理解什么是 eval function()

我正在尝试分析以下代码,但无法弄清楚什么是Evalfunction()以及它的实际作用:packagemyudfs;importjava.io.IOException;importorg.apache.pig.EvalFunc;importorg.apache.pig.data.Tuple;publicclassUPPERextendsEvalFunc{publicStringexec(Tupleinput)throwsIOException{if(input==null||input.size()==0)returnnull;try{Stringstr=(String)input.g

hadoop - pig : Pivoting & Sum 3 relations

我有3种不同的关系,如下所述,我可以使用UDF获取输出,但在PIG中寻找实现。在论坛中提到了其他东西,但没有对这个问题有具体的想法。过程:FN1,10FN2,20FN3,23FN4,25FN5,15FN7,40FN10,56拒绝:FN1,12FN2,13FN3,33FN6,60FN8,23FN9,44FN10,4所有FN:FN1FN2FN3FN4FN5FN6FN7FN8FN9FN10所需的输出是:FN1,10,12,22FN2,20,13,33FN3,23,33,56FN4,25,0,25FN5,15,0,15FN6,0,60,60FN7,40,0,40FN8,0,23,23FN9,0

hadoop - 使用 Pig 将数据移动到 HBASE

我尝试在我的hbase中移动851数据,因为我使用以下命令创建了hbasecreate'customers','customers_data'我使用pig脚本移动文件。我的pig脚本是STOCK_A=LOAD'/user/cloudera/xxx'USINGPigStorage('|');data=FILTERSTOCK_ABY($0matches'.*MH.*');MH_DATA=FOREACHdataGENERATE$1,$3,$4;STOREMH_DATAinto'hbase://customers'USINGorg.apache.pig.backend.hadoop.hbase

hadoop - 在引擎盖下? PIG 在哪里保存中间结果/关系数据。?

LOAD函数/命令从HDFS或本地FS加载数据。例如:-gurnt>employees=LOAD'hdfs://localhost:9090/pig_dir/data.txt'USINGPigStorage(',')as(id:int,salary:int,...etc)可以执行哪些pig命令——比如grunt>wellpaid_employees=FILTERemployeesBYsalary>'100000';所以我开始思考,pig在哪里存储“员工”数据/关系。当需要进一步处理时使用它,即生成wellpaid_employees。1)employees关系——如果它只是将emplo

hadoop - 如何从 Apache pig 中的日期获取星期几名称?

给定“03/09/1982”,我们怎么能说这是星期几呢。在这种情况下,它将是“星期二”。是否可以在单个查询中获取?谢谢 最佳答案 您可以使用ToDate()将此字符串转换为日期对象,然后使用ToString()再次转换为具有所需格式的字符串,不要忘记Pig使用JavaSimpleDateFormat处理日期的类。ToString(ToDate('03/09/1982','dd/MM/yyyy'),'EEE') 关于hadoop-如何从Apachepig中的日期获取星期几名称?,我们在St

java - 将参数传递给 pig udf 无法使用参数实例化

我正在尝试编写可以接受参数的PigUDF。我看了一些博客,了解到可以通过添加参数化构造函数来完成。所以我的UDF代码是:importjava.io.IOException;importjava.util.List;importorg.apache.pig.EvalFunc;importorg.apache.pig.data.Tuple;importorg.apache.commons.lang.StringUtils;publicclassLeftPadextendsEvalFunc{Stringsize;StringpadChar;publicLeftPad(Stringsize,S

csv - 在 pig 中存储多个变量

我对Pig非常陌生,我不确定要用谷歌搜索什么,因为我得到的那些结果并没有真正解决我的问题。我现在拥有的。a=LOAD'SOME_FILE.csv'usingPigStorage(',')ASschema;C=FOREACHBGENERATE$0,$1,$2;STORECinto'somestorage'usingPigStorage(';')我想做的是通过for循环运行它并将它们存储在同一个文件中。我如何实现这一点?谢谢。换句话说,我有SOME_FILE.csv、SOME_FILE_1.csv、SOME_FILE_2.csv等等。但我想通过相同的FOREACH语句运行它们并且只运行一个

hadoop - 使用 Pig Latin - Hadoop 将元组插入内袋

我正在尝试使用PigLatin创建以下格式的关系:userid,day,{(pid,fulldate,x,y),(pid,fulldate,x,y),...}关系描述:每个用户(userid)在每一天(day)购买了多个产品(pid)我正在将数据加载到:A=LOAD'**fromaHDFSURL**'AS(pid:chararray,userid:chararray,day:int,fulldate:chararray,x:chararray,y:chararray);B=GROUPABY(userid,day);DescribeB;B:{group:(userid:chararray