草庐IT

hadoop - 使用 PIG 计算平均值 |许多相同的条目

我是PIG的新手,因此是一个绝对的初学者。我有一个.txt文件,其条目如下所示:NameMatriculationNumberGradeNameofSubjectJohnWilliam0789328322.7ResearchJohnWilliam0789328322.3InternationalManagementJohnWilliam0789328321.7Math正如您所看到的,在文本文件中有许多关于同一个人但不同科目(当然)不同成绩的条目。我想计算每个学生的平均成绩。对于样本数据,我必须加上2.7、2.3和1.7,然后除以计数(三)。结果将是2.23。应为列表中的每个学生制定此程

hadoop - Apache spark - 许多输出文件

我正在使用apache-spark我的spark作业每天创建10k个小文件(~50MB)对于HDFS中的命名节点来说太过分了我尝试使用coalesce来减少输出文件的数量,但会减慢工作速度。谁能建议我应该使用什么? 最佳答案 我们有一个类似的案例。我们每小时运行一次批处理作业并合并所有新文件。您可以使用另一个spark作业或任何其他最适合您的框架来执行此操作。通过这种方式,您可以完全分离这2个任务,并从每个任务中获得最佳性能。 关于hadoop-Apachespark-许多输出文件,我们

java - 读取许多文件hadoop mapreduce分布式缓存

我有一组文件,比如10个文件和一个大文件,它是所有10个文件的总和。我将它们添加到分布式缓存、工作session中。当我在reduce中阅读它们时,我观察到以下内容:我只读取在reduce方法中添加到分布式缓存中的选定文件。我预计速度会更快,因为与在所有reduce方法中读取大文件相比,每次reduce中读取的文件大小更小。但是,速度较慢。此外,当我将其拆分为更小的文件并将它们添加到分布式缓存时,问题变得更糟。作业本身在很长一段时间后才开始运行。我找不到原因。请帮忙。 最佳答案 我认为你的问题在于在reduce()中读取文件。您应该

Hadoop 读取整个文件并发送给许多映射器

我正在编写一个hadoop应用程序,我想在其中读取整个输入文件并将其发送给manny映射器,并让每个映射器完成部分工作。这是我的FileInputFormat。我必须让isSplitable返回false,这样我才能读取整个文件。但是,这会导致只有onemapper会被初始化。有没有人可以告诉我如何读取整个输入文件并将其发送给多个映射器进行处理?publicclassWholeFileInputFormatextendsFileInputFormat{@OverrideprotectedbooleanisSplitable(FileSystemfs,Pathfilename){retu

python - Hadoop/Spark 读取许多 CSV 文件

我有很多以非常有意义的方式存储的结构化数据,我想以同样有意义的完整和高效的方式处理它们。+-some-hdfs-path/+-level-1_var-01/|+-level-2_var-001.csv|+-...|+-level-2_var-nnn.csv+-level-1_var-02/|+-level-2_other-001.csv|+-...|+-level-2_other-mmm.csv+-.../+-level-1_var-nn/|+-...每个文件大约100MB,大约有1,000,000行。每个目录中的文件数量(通常约为100个)各不相同,文件名也各不相同。换句话说,我不知

hadoop - 如何将许多参数写入 reducer 的输出文件?

我有一个文本文件如下250788965731,20090906,200937,200909,621,SUNDAY,WEEKEND,ON-NET,MORNING,OUTGOING,VOICE,25078,PAY_AS_YOU_GO_PER_SECOND_PSB,SUCCESSFUL-RELEASEDBYSERVICE,5,0,1,6.25,635-10-104-40163.我只是hadoop的初学者。我遇到了以下问题。如何打印输出文件中的整行?据我所知,只能将一个键和一个值写入输出文件。如何在我的输出文件中写入包含许多参数的整行。或者我如何在输出文件中至少写入一些参数?

java - Hadoop 许多映射器

一个Job可以同时拥有多个Mapper吗?例如job.setMapperClass(Mapper1.class);job.setMapperClass(Mapper2.class);job.setMapperClass(Mapper3.class); 最佳答案 是的,如果你使用ChainMapper.事实上,ChainMapper和ChainReducer共同使您能够执行Mapper+|形式的MapReduce工作流reducer|映射器*。 关于java-Hadoop许多映射器,我们在

hadoop - 从包含 hadoop 中许多文件的目录中读取特定文件

我想根据文件名从hadoop中存在的文件列表中读取特定文件。如果文件名与我给定的名称匹配,我想处理该文件数据。这是我在map方法中尝试过的以下方法publicvoidmap(LongWritablekey,Textvalue,Contextcon)throwsIOException,InterruptedException{FileSplitfs=(FileSplit)con.getInputSplit();Stringfilename=fs.getPath().getName();filename=filename.split("-")[0];if(filename.equals("

java - 在 hbase 中有效地发送许多 get 请求

我正在尝试在Java中创建一个通用方法来查询hbase。我目前写了一篇接受3个参数的文章一个Range(扫描表格)列(待返回)...和条件(即browser==Chrome)所以一条语句(如果用SQLish语言编写)可能看起来像SELECTOSFROMTABLEWHEREBROWSER==CHROMEINRANGE(5WEEKSAGO->2WEEKSAGO)现在,我知道我没有正确使用HBase(对rowkey等使用常见的列查询),但为了实验,我想尝试一下,以帮助我学习。所以我做的第一件事是在Scan上设置一个Range。(5周到2周前),因为rowkey是timestamp,所以效率很

hadoop - 我如何在 Pig 中将许多 map 的元组分成不同的行

我在Pig中有一个如下所示的关系:([account_id#100,timestamp#1434,id#900],[account_id#100,timestamp#1434,id#901],[account_id#100,timestamp#1434,id#902])如您所见,我在一个元组中包含三个map对象。上面的所有数据都在关系中的第0个字段中。所以上面的数据与单个bytearray列有关。数据加载如下:data=load's3://data/data'usingcom.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad')