在hadoop map中读取excel文件会减少

rag*_*jan 1 hadoop mapreduce bigdata

我试图在hadoop中读取包含一些聚合数据的Excel文件.地图缩减程序似乎工作正常但输出产生的格式不可读.我需要在Hadoop中使用任何特殊的InputFormat读取器用于Excel文件Map Reduce?.我的配置如下

   Configuration conf=getConf();
Job job=new Job(conf,"LatestWordCount");
job.setJarByClass(FlightDetailsCount.class);
Path input=new Path(args[0]);
Path output=new Path(args[1]);
FileInputFormat.setInputPaths(job, input);
FileOutputFormat.setOutputPath(job, output);
job.setMapperClass(MapClass.class);
job.setReducerClass(ReduceClass.class);
//job.setCombinerClass(ReduceClass.class);
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(Text.class);
//job.setOutputKeyClass(Text.class);
//job.setOutputValueClass(Text.class);
System.exit(job.waitForCompletion(true)?0:1);
return 0;
Run Code Online (Sandbox Code Playgroud)

输出产品看起来像这样 KW O A ]n Ε r3 \n" p 6W jJ 9W f= 9ml dR y /Ք 7 ^ i M*Ք ^nz l ^ ) j ( dRͱ/7 TS* M//7 TS &jZoTSR7 @)oTӺ5{%+ۆw6- = E_}米)〜ʅ ژ :# j ] u >

jko*_*acs 5

我不知道是否有人为MS Excel文件开发了一个自定义的InputFormat(我怀疑它并且快速研究没有任何结果),但你肯定无法使用TextInputFormat读取Excel文件.XSL文件是二进制文件.

解决方案:将Excel文件导出为CSV或TSV,然后您就可以使用TextInputFormat加载它们.