草庐IT

PIG_FEATURE

全部标签

hadoop - 如何读取 pig 中的json数据?

我有以下类型的json文件:{"employees":[{"firstName":"John","lastName":"Doe"},{"firstName":"Anna","lastName":"Smith"},{"firstName":"Peter","lastName":"Jones"}]}我正在尝试执行以下pig脚本来加载json数据A=load'pigdemo/employeejson.json'usingJsonLoader('employees:{(firstName:chararray)},{(lastName:chararray)}');出现错误!!Unabletore

hadoop - 如何执行 pig 文件

我有一个简单的csv文件1234当我尝试以这种方式在其上运行一些代码时。grunt>SETjob.name'this_and_that';grunt>SETmapreduce.job.queuenameadhoc;grunt>SETdefault_parallel50;grunt>index_row=load'nmbr.csv'as(number:int);grunt>dumpindex_row;我得到了正确的结果。(1)(2)(3)(4)但是当我将代码保存在文件test.pig中时SETjob.name'this_and_that';SETmapreduce.job.queuenam

hadoop - 如何比较 PIG 中的两列并删除任何相同的值,无论大写/小写

我有3列,一个id列和2个名称列。有时2个名称列的值相同,但其中一个在一列中为大写,而在另一列中为小写。如何删除值相同(或具有相似字符)但大小写不同的值?例如:a=加载txt文件a=foreacha生成id,name1,name2当前输出:id1,james,JAMESid2,tom,Tomid3,Jim,Bobid4,Bill,billy预期输出:下面只有这1个结果a=比较name1和name2,如果name1中有任何相似的字符也在name2中,则将其过滤掉id3,吉姆,鲍勃感谢您的帮助! 最佳答案 假设您已经将数据加载到关系A中

hadoop - 在 PIG 中如何删除相似值

在我的pig脚本中,我有一个country1和country2的列以及一个id。在我的国家/地区字段中,一些值类似于以下内容。如何过滤掉至少有2个连续相同字符的相似值?例如:a=loadfilea=generateid,country1,country2输出:id1,us,usaid2,gb,gbaid3,in,indid4,in,usaexpectedoutput:id4,in,usa 最佳答案 使用SUBSTRING获取第3列的前两个字符并将其与第2列的值进行比较。B=FILTERABY(LOWER(A.$1)!=SUBSTRI

hadoop - Apache pig : Calculate number of days between a date and current date

我有一个格式为(#,title,year,rating,duration)的电影列表:1,TheNightmareBeforeChristmas,1993,3.9,45682,TheMummy,1932,3.5,43883,OrphansoftheStorm,1921,3.2,90624,TheObjectofBeauty,1991,2.8,61505,NightTide,1963,2.8,51266,OneMagicChristmas,1985,3.8,53337,Muriel'sWedding,1994,3.5,63238,Mother'sBoys,1994,3.4,57339,N

hadoop - pig 第三高的薪水

如何在pig中获得第三高的薪水,即使它包含重复项。请帮我解决这个问题。输入:Sri30000Abhi15000SAS15000mansa18000asdf5262dnaj20000harda20000 最佳答案 您可以使用RANK来实现这一点,并在不同的薪资关系中获得排名第三的记录。我将使用LIMIT。A=LOAD'data.txt'USINGPigStorage('\t')AS(name:chararray,salary:int);B=FOREACHAGENERATEA.Salary;C=DISTINCTB;D=ORDERCBYC

hadoop - PIG 中的 NOT IN 子句

我正在努力select*fromAwhereA.IDNOTIN(selectidfromB)(insql)sourcenew=LOAD'hdfs://HADOOPMASTER:54310/DVTTest/Source.txt'USINGPigStorage(',')as(ID:int,Name:chararray,FirstName:chararray,LastName:chararray,Vertical_Name:chararray,Vertical_ID:chararray,Gender:chararray,DOB:chararray,Degree_Percentage:char

hadoop - 如何使用 PIG 脚本获取两个纪元时间值之间的毫秒数

游戏ID|开始时间|结束时间1|1235000140|12350024572|1235000377|12350033003|1235000414|12350561281|1235000414|12350561282|1235000377|1235003300在这里,我想获取两个纪元时间字段BeginTime和EndTime之间的毫秒数。然后计算每场比赛的平均时间。 最佳答案 games=load'games.txt'usingPigStorage('|')as(gameid:int,begin_time:long,end_time:

hadoop - 错误 1070 : Could not resolve toDate using imports: [, java.lang., > org.apache.pig.builtin., org.apache.pig.impl.builtin.]

使用pig将数据转换为日期时间时出现问题。导入以下数据集,制表符分隔,我添加了\t来说明。5000001\t1133938\t1273719\t2008-06-0100:03:35.0我想获取最后一个值(2008-06-0100:03:35.0)并提取月份。将其加载为DateTime会生成一个空白字段。因此,我想将其导入为字符数组,然后使用toDate将其转换为我可以在其上使用getMonth的日期时间字段。当我在shell中尝试时,我得到了这个:grunt>orders=load'/home/cloudera/Desktop/orders1'usingPigStorage('\t')

hadoop - pig 注册jar,文件不存在报错

我正在使用Hortonworks沙盒并尝试运行一个简单的pig脚本。似乎有与“文件不存在”相关的恼人错误。脚本如下:REGISTER'/piggybank.jar';inp=load'/my.csv'USINGorg.apache.pig.piggybank.storage.CSVExcelStorage..ERROR2997:EncounteredIOException.Filedoesnotexist:hdfs://sandbox.hortonworks.com:8020/tmp/udfs/'/piggybank.jar'但是,我的jar位于根目录(/)中,并且我也给予了适当的许可