无法毫无例外地运行此Hadoop/级联代码?两者都是新手



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

我不知所措。如果有人能向我解释我的思维过程在哪里误入歧途,我将不胜感激。我更关心的是学习技术及其库,而不是生成工作代码。

以下是源代码:http://pastebin.com/USTUJ5Da

这是堆栈跟踪:

SLF4J:未能加载类"org.SLF4J.impl.StaticLoggerBinder"。SLF4J:默认为无操作(NOP)记录器实现SLF4J:请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder了解更多详细信息。管道0+管道1+管道2+管道3+管道4+管道5+管道6线程"main"cascading.flow.planner.PlannerException:无法从程序集生成流:[[pipe0+pipe1+pipe2+pipe…][com.wellcentive.DQ1a.main(DQ1a.java:51)]合并的流必须以相同的顺序声明相同的字段名,应为:[{7}:'PROC_NUM'、'DX 1'、'DX 3'、'DX4'、'DX 5'、'dx6'、'codes']找到:[{,'DX 6','codes']]位于cascade.flow.planner.FlowPlanner.handleExceptionDuringPlanning(FlowPlanner.java:576)位于cascade.flow.hadop.planner.HadoopPlanner.buildFlow(HadoopPlanner.java:263)位于cascade.flow.hadop.planner.HadoopPlanner.buildFlow(HadoopPlanner.java:80)位于cascade.flow.FlowConnector.connect(FlowConnector.java:459)位于cascade.flow.FlowConnector.connect(FlowConnector.java:450)位于cascade.flow.FlowConnector.connect(FlowConnector.java:426)级联.flow.FlowConnector.connect(FlowConnector.java:275)位于cascade.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}:'ROC_NUM'、'DX 1'、'DX 3'、'DX4'、'DX 5'、'dx6'、'codes']找到的字段名为:位于cascading.pipe.Splice.resolveDeclared(Splice.java:1276)位于cascading.pipe.Splice.outgoingScopeFor(Splice.java:992)位于cascade.flow.planner.ElementGraph.resolveFields(ElementGraph.java:628)位于cascade.flow.planner.ElementGraph.resolveFields(ElementGraph.java:610)位于cascade.flow.hadop.planner.HadoopPlanner.buildFlow(HadoopPlanner.java:248)…还有7个

在级联中,当您处理合并时,

您应该有相同的字段名

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

最新更新