草庐IT

order_number

全部标签

使用 order by 在 Pig 中排序

您好,我是Hadoop和Pig的新手。当我尝试在pig中使用ORDERBY对我的数据进行排序时,输出并不完全按升序排列。输入:1,4,12,36,88,93,7代码:A=LOAD'INPUT'usingPigStorage();B=ORDERABY$0;`entercodehere`DUMPB;输出:1,12,36,4,7,88,93这不正确。请帮助我以正确的方式获取它。 最佳答案 您需要将列$0声明为数字,或使用强制转换。例如:A=LOAD'INPUT'usingPigStorage()AS(a0:int,[extracolumn

hadoop - pig 数据类型 : Ordered Tuple v/s Unordered Bag

引用OReilly:元组:数据元素的有序集合。Bag:元组的无序集合。我对Pig还很陌生,这可能是一个微不足道的问题,但我需要帮助来理解元组如何是元素的“有序”集合,而包不是。谢谢。 最佳答案 想一想最简单的示例-一个格式良好、未排序的CSV文件。当您将文件读入PIG时,每一行都是一个元组。字段的集合。每个字段都有它的位置;说“第一场”、“第三场”和“最后一场”是有道理的。但是,这些行的顺序是没有意义的。同样,包中元组的顺序是任意的,不能依赖。这里有一个有趣的概念讨论:HowdoIextractthefirsttuplefromag

hadoop - 亚马逊弹性 MapReduce : the number of launched map task

在MapReduce作业流程步骤的“系统日志”中,我看到以下内容:JobCountersLaunchedreducetasks=4Launchedmaptasks=39启动的maptask数是否包含失败的任务?我使用NLineInputFormat类作为输入格式来管理maptask的数量。但是,对于完全相同的输入,我偶尔会得到略有不同的数字,或者取决于实例的数量(10、15和20)。谁能告诉我为什么我看到启动的任务数量不同? 最佳答案 这很可能是推测性执行的启动。当Hadoop有可用资源时,它可能会选择同时运行同一任务的两次尝试。启

hadoop - 如何在 Hadoop Hive 中执行 "Order of Events"查询?

过去2个月我一直在学习Hive,但我无法弄清楚如何执行某些基于序列的查询。举个例子:我有一个包含用户操作的巨大日志每个用户操作都有一个日期字段,但由于来自不同机器的多个日志文件,显然可能不会按该顺序扫描每个日志都可以记录各种不同的事件。对于这个例子,我将它们表示为字母:A、B、C、D...问题:我该如何编写一个查询,询问“平均而言,事件A在事件B发生之前发生了多少次”?我知道如何对用户进行分组,只取已经完成A和B的用户,并对发生的A的数量进行平均,但是限制第一次出现的B似乎很困难。我认为我实际上可以通过将10个左右看起来令人讨厌的查询串在一起来做到这一点,但我想知道是否有一种我不知道的

Hadoop 映射减少 : Order of records while grouping

我在每行输入中都有一条记录,每条记录大约有10个字段。首先,我按三个字段(field1,field2,field3)对记录进行分组,因此一个mapper/reducer负责一个唯一的组(基于三个字段)。在每个组中,我根据另一个整数字段timestamp对记录进行排序,并通过添加另一个字段用相同的标签aTag标记组中的每个记录。假设在mapper#1中,我将一个排序组标记为aTag,在mapper#2中,我标记了另一个组(一个不同的组,因为我最初根据三个字段对记录进行了分组)具有相同的标签aTag。现在,如果我根据标签字段对记录进行分组(即,在不同的映射器中对组进行分组),我注意到每个组

hadoop - 自定义分区程序 : N number of keys to N different files

我的要求是编写自定义分区程序。例如,我有N个来自映射器的键('jsa'、'msa'、'jbac')。长度不固定。事实上,它可以是任何词。我的要求是以这样一种方式编写自定义分区程序,它将所有相同的key数据收集到同一个文件中。键数不固定。在此先感谢您。谢谢,萨提斯。 最佳答案 因此,您有多个映射器正在输出的键,并且您希望每个键都有不同的缩减器,并且每个键都有一个单独的文件。因此,首先编写Partitioner可能是实现该目标的一种方式。默认情况下,hadoop有自己的内部逻辑,它在键上执行,并根据它调用reducer。因此,如果您想编

与处理 int long 的 ORDER 相关的 HADOOP PIG 错误

这里是部分代码(在这部分已经测试之前省略了代码)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

hadoop - 如何修复 java.lang.IllegalArgumentException : Unrecognized Hadoop major version number: 3. 1.0?

我在查询中得到一个java.lang.IllegalArgumentException:UnrecognizedHadoopmajorversionnumber:3.1.0exception。这是查询:WITHt1as(select*frombrowserdatajoincitydataoncityid=id),t2as(selectuap.deviceasdevice,uap.osasos,uap.browserasbrowser,nameascitynamefromt1lateralviewParseUserAgentUDTF(UserAgent)uapasdevice,os,br

mysql - Sqoop - 如果使用 order by 和 limit 1,则导入最大值查询失败

我有一个简单的Sqoop查询,我用它来导入表ID的最大值并将其存储在HDFS中。存储在HDFS中是客户要求的,所以出于多种原因我要这样做。为了得到我用过的最大值sqoopimport\--connectjdbc:mysql://abc.com/sqoopemp\--usernameroot\--passwordroot\--e'selectmax(id)fromempWHERE$CONDITIONS'\--target-dirsqooplastmax\--m1\--drivercom.mysql.jdbc.Driver上面的查询给了我所需的答案,但出于性能原因,我正在考虑使用以下内容s

Hadoop : Number of input records for reducer

无论如何,每个reducer进程都可以确定它必须处理的元素或记录的数量吗? 最佳答案 简短回答-提前不,reducer不知道可迭代对象支持多少个值。您可以执行此操作的唯一方法是在迭代时进行计数,但您不能再对可迭代对象进行重新迭代。长答案-支持可迭代对象实际上是序列化键/值对的排序字节数组。reducer有两个比较器-一个用于按键顺序对键/值对进行排序,然后第二个用于确定键之间的边界(称为键分组器)。通常,键分组器与键排序比较器相同。当迭代特定键的值时,底层上下文检查数组中的下一个键,并使用分组比较器与前一个键进行比较。如果比较器确定