无法让这个Hadoop / Cascading代码无例外地运行?两者都是新的

时间:2013-12-23 22:32:59

标签: java hadoop cascading

有人可以解释为什么当我尝试在本地文件系统上运行作业时,此代码会抛出异常吗?我是Hadoop / Cascading的新手,我试图获得每行多个列并计算这些列中值的频率(不区分它们来自哪个列键)

我很茫然。如果有人可以向我解释我的思维过程在哪里误入歧途,我将非常感激。我更关心学习技术及其库而不是生成工作代码。

这是源代码: http://pastebin.com/USTUJ5Da

这是堆栈跟踪:

SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。 SLF4J:默认为无操作(NOP)记录器实现 SLF4J:有关详细信息,请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder。 PIPE0 + PIPE1 + pipe2 + PIPE3 + pipe4 + pipe5 + pipe6 线程“main”中的异常cascading.flow.planner.PlannerException:无法从汇编构建流:[[pipe0 + pipe1 + pipe2 + pipe ...] [com.wellcentive.DQ1a.main(DQ1a.java:51)]合并的流必须以相同的顺序声明相同的字段名称,预期:[{7}:'PROC_NUM','DX 1','DX 3','DX 4','DX 5','DX 6', 'code']发现:[{7}:'PROC_NUM','DX 2','DX 3','DX 4','DX 5','DX 6','代码']]     at cascading.flow.planner.FlowPlanner.handleExceptionDuringPlanning(FlowPlanner.java:576)     at cascading.flow.hadoop.planner.HadoopPlanner.buildFlow(HadoopPlanner.java:263)     at cascading.flow.hadoop.planner.HadoopPlanner.buildFlow(HadoopPlanner.java:80)     at cascading.flow.FlowConnector.connect(FlowConnector.java:459)     at cascading.flow.FlowConnector.connect(FlowConnector.java:450)     at cascading.flow.FlowConnector.connect(FlowConnector.java:426)     at cascading.flow.FlowConnector.connect(FlowConnector.java:275)     at cascading.flow.FlowConnector.connect(FlowConnector.java:257)     在com.wellcentive.DQ1a.main(DQ1a.java:68) 引起:cascading.pipe.OperatorException:[pipe0 + pipe1 + pipe2 + pipe ...] [com.wellcentive.DQ1a.main(DQ1a.java:51)]合并的流必须声明相同的字段名称,顺序相同,预期:[{7}:'PROC_NUM','DX 1','DX 3','DX 4','DX 5','DX 6','代码']找到:[{7}:'PROC_NUM ','DX 2','DX 3','DX 4','DX 5','DX 6','代码']     at cascading.pipe.Splice.resolveDeclared(Splice.java:1276)     at cascading.pipe.Splice.outgoingScopeFor(Splice.java:992)     at cascading.flow.planner.ElementGraph.resolveFields(ElementGraph.java:628)     at cascading.flow.planner.ElementGraph.resolveFields(ElementGraph.java:610)     at cascading.flow.hadoop.planner.HadoopPlanner.buildFlow(HadoopPlanner.java:248)     ......还有7个

1 个答案:

答案 0 :(得分:0)

在级联时使用合并,

您应该拥有相同的字段名称

这里冲突是一个表中的D1和另一个表中的D2,将它们更改为相同的字段名称。