读取Hadoop中图的Excel文件减少(Reading a excel file in hadoo

2019-10-18 00:10发布

我试图读取包含在hadoop.The地图减少程序聚集一些数据的Excel文件似乎工作正常,但输出端产生在非可读format.Do我需要使用Hadoop中的Excel文件的任何特殊InputFormat读者地图降低?。我的配置如下图

   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;

输出端产生看起来像这样KW OA]nΕr3\ n“P饚6WjJ9Wf = 9mldR Y /Ք7 ^ I M *Ք^ NZL ^)妗Ĵ(dRͱ/ 7TS * M // 7TS &jZoTSR7 @)oTӺ5{%+ۆw6- = E_}米)〜ʅ ژ:#J] U>

Answer 1:

我不知道是否有人实际制定了MS Excel文件(我怀疑它,快速研究变成了什么)的自定义InputFormat,但你肯定无法使用的TextInputFormat读取Excel文件。 XSL文件是二进制的。

解决方案:你导出Excel文件CSV或TSV,那么你就可以使用的TextInputFormat加载它们。



Answer 2:

我知道这是有点晚了,但现在有人已经创建的Excel输入格式为这类问题的标准溶液。 阅读本- https://sreejithrpillai.wordpress.com/2014/11/06/excel-inputformat-for-hadoop-mapreduce/

一个GitHub的项目是那里的代码库。

看这里- https://github.com/sreejithpillai/ExcelRecordReaderMapReduce/



Answer 3:

您也可以使用HadoopOffice库,它允许您使用Hadoop和星火读取/写入Excel中。 它可用于Maven的中央和星火包装。

https://github.com/ZuInnoTe/hadoopoffice/wiki



文章来源: Reading a excel file in hadoop map reduce