我在配置单元中有一个分区表,其中每个分区将有630个gzip压缩文件,每个平均大小为100kb。如果我使用hive查询这些文件,它将生成恰好630个映射器,即一个文件对应一个映射器。现在作为一个实验,我尝试用pig读取这些文件,而pig实际上组合了这些文件并仅生成了2个映射器和操作比hive快得多。为什么pig和hive的执行方式不同?在配置单元中,我们可以类似地组合小文件来生成更少的映射器吗? 最佳答案 您需要指定要使用CombineHiveInputFormat:sethive.input.format=org.apache.h
数据集的形式为:FIELD_A--FIELD_B例子:XYZ--1XYZ--2XYZ--8ABC--4ABC--3PQR--5预期输出:XYZ-3ABC-2PQR-1 最佳答案 data=LOAD'dataset'USINGPigStorage('--');field1=FOREACHdataGENERATE$0;grouped=GROUPfield1BY$0;count=FOREACHgroupedGENERATECOUNT(field1);我不明白你为什么需要字段B,一开始就丢弃它。
我对Oozie和Pig还是陌生的。谁能告诉我如何在运行时使用Oozie或Pig重命名文件夹。我有一个pig脚本,它从输入文件夹中读取数据,然后将输出写入输出文件夹。流程是使用Oozie设计的。下次我运行Oozie文件夹时,应删除Input文件夹并将Output文件夹命名为Input。谢谢。等待回应 最佳答案 OozieFs(HDFS)操作可用于重命名目录。您可以引用此link在上面的链接中,您可以在workflow.xml中添加以下部分...... 关于hadoop-在Oozie或pig
我还在开始学习pig,所以请原谅我。问题来了。如何删除中间有空格的数据值?这是数据:2035356531262data=LOAD'sample.csv'AS(number:chararray);processed=FOREACHdataGENERATEnumber;DUMPprocessed;如何在脚本中进行编辑,以便删除5312中的空格并以整数形式返回? 最佳答案 这是解决方案-data=load'sample.csv'as(number:chararray);b=FOREACHdataGENERATE(LONG)REPLACE(
如何过滤只占用最近更新信息的数据?这是示例数据。数据:UnitedStatesofAmerica2000Dentistrypersonneldensity162.7UnitedStatesofAmerica2000Healthmanagement&supportworkers1237.9UnitedStatesofAmerica2000Laboratoryhealthworkers228.4UnitedStatesofAmerica1995Nursingandmidwiferypersonnel879.80005UnitedStatesofAmerica2000Nursingandmi
这里是部分代码(在这部分已经测试之前省略了代码)data3=FOREACHdata2GENERATEgroup,SUM(data1.cpc)ascost:int;data4=ORDERdata3BYcostASC;DESCRIBEdata4;结果没有问题:data4:{group:chararray,cost:int}但是,如果我改变DESCRIBEdata4到DUMPdata4,会导致错误:2014-06-1117:22:26,525ERRORorg.apache.pig.tools.pigstats.SimplePigStats:ERROR:java.lang.RuntimeExc
我有这样的数据开始时间结束时间12:10:3013:10:00我想将其存储在pig中并计算耗时。我怎么能在pig身上做到这一点?我只是简单地写了Start_time-End_time但结果是空白 最佳答案 查询将与此类似:time=LOAD'/user/name/input_folder/file_name'USINGPigStorage()AS(sd:chararray,ed:chararray,t1:chararray,t2:chararray);A=FOREACHtimeGENERATE$0,$1,GetHour(ToDate
我有一个类似下面的pig脚本:a=LOAD'feedname.hourly_data'USINGorg.apache.hcatalog.pig.HCatLoader();b=FILTERaBYdt=='$date{00}';c=GROUPbALL;d=FOREACHcGENERATECOUNT(b);dumpd;脚本使用以下参数执行:pig-useHCatalog-pdate=20140708my_script.pig请注意,此脚本使用硬编码的dt值:a=LOAD'feedname.hourly_data'USINGorg.apache.hcatalog.pig.HCatLoader(
我使用hadoop2.4.1和Yarn处理pig作业。我的一些Pig作业是高优先级的(它们应该在20分钟内运行)。我正在寻找PIG或YARN选项来为我的高优先级工作保留yarn容器。有办法吗?现在,我总是依赖于其他正在运行的作业,并且根据作业的大小,我的优先作业可能会等待数小时。谢谢,罗曼 最佳答案 您可以为此使用FairScheduler。FairScheduler将您的应用组织成“队列”,然后在这些队列之间公平地共享资源。除了提供公平共享外,它还允许为队列分配有保证的最小份额,这有助于确保某些队列始终获得足够的资源。您还可以为不
我为我的嵌套数据尝试了这个脚本:`books=load'data/book-seded-workings-reduced.json'usingJsonLoader('user_id:chararray,type:chararray,title:chararray,year:chararray,publisher:chararray,authors:{(name:chararray)},source:chararray');`group_auth=按书名分组图书;maped=foreachgroup_auth生成组,books.authors;fil=foreachmapedgenera