草庐IT

array_reduce

全部标签

java - Hadoop在Maper或Reducer端使用java连接两个不同的数据集

我有两个不同的数据集。***Comments.csv:***iduserid***Posts.csv-***idpost_typecreationdatescoreviewcountowneruseridtitleanswercountcommentcount我有显示名称,但没有。获得最高声誉的用户创建的帖子数。我知道MapReduce如何使用单个文件工作的代码。我知道如何为Job设置多个文件。但是我不知道如何在Mapper级别加入不同的数据集。我不确定我是否可以用一个Mapper连接这两个数据集。publicvoidmap(Objectkey,Textvalue,Contextcon

java - Reducer 将 Mapper 输出写入输出文件

我正在学习Hadoop并尝试执行我的Mapreduce程序。所有Map任务和Reducer任务均已完成,但Reducer将Mapper输出写入输出文件。这意味着根本没有调用Reduce函数。我的示例输入如下所示1,a1,b1,c2,s2,d预期的输出如下1a,b,c2s,d下面是我的程序。packagepatentcitation;importjava.io.IOException;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoo

hadoop - Map Reduce在eclipse中执行

谁能告诉我如何在Eclipse的参数选项卡中设置HDFS文件路径。这样下面的代码就不会给出超出索引的异常。FileInputFormat.addInputPath(job,newPath(otherArgs[0]));FileOutputFormat.setOutputPath(job,newPath(otherArgs[1])); 最佳答案 您需要使用运行配置。右键单击该程序,转到运行配置,使用java应用程序。选择正确的项目和带有main函数的正确程序后,您需要转到VMArguments并传递参数。

hadoop - Reducer 数量和输出顺序

当我使用函数job.setNumReduceTasks(1);时,我得到按键排序的输出。但是,当我删除此功能时,输出不会按键排序。那么,当我们有多个reducer任务时,我们是否应该期望从reducer获得排序的输出?谢谢。 最佳答案 输出在单个Reducer中按键排序。然而,默认的Partitioner是哈希函数的结果,因此虽然每个文件在使用多个Reducer时都会被排序,但一个文件不会是最后一个文件的排序延续。例如:我们有一个包含三个Reducer的字数统计作业。映射器输出:(A,1)(zebra,1)(bat,1)(zebra

eclipse - 在 eclipse 中安装 MAP-REDUCE 插件时出错

当我尝试在eclipseINDIGO中安装MAP-REDUCE插件时,出现以下错误截图:我已经安装了hadoop1.2.1。 最佳答案 您尝试使用的插件是使用Java8编译的,但您正在使用早期版本的Java运行Eclipse。您必须使用Java8运行Eclipse才能使用此插件。 关于eclipse-在eclipse中安装MAP-REDUCE插件时出错,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

scala - 星火笔记本 : How can I filter rows based on a column value where each column cell is an array of strings?

我有一个巨大的数据框,其中“类别”列具有企业的各种属性,即是否是餐厅、洗衣服务、迪斯科舞厅等。我需要的是能够.filter数据框,以便可以看到包含Restaurant的每一行。这里的问题是“类别”是一个字符串数组,其中一个单元格可能类似于:“餐馆、食物、夜生活”。有任何想法吗?(Scala[2.10.6]Spark[2.0.1]Hadoop[2.7.2])我已经尝试过SQL风格的查询,例如:valcountResult=sqlContext.sql("SELECTbusiness.neighborhood,business.state,business.stars,business.c

hadoop - 如何在 Hive 中将 array<date> 转换为 array<string>

我想将数组转换为数组字符串,这样["2016-06-02","2016-06-02"]变成2016-06-02|2016-06-02 最佳答案 使用concat_ws(stringdelimiter,array)连接数组的函数:selectconcat_ws(',',collect_set(date))fromtable;如果日期字段不是字符串,则将其转换为字符串:concat_ws(',',collect_set(cast(dateasstring))) 关于hadoop-如何在Hiv

java - 在hadoop中没有reducer的情况下限制多输出中映射器的数量

您好,我有一个从HBase读取记录并将其写入文本文件的应用程序HBase表有200个区域。我在映射器类中使用MultipleOutputs来写入多个文件,并且我正在根据传入的记录创建文件名。我正在制作40个唯一的文件名。我能够正确获取记录,但我的问题是,当mapreduce完成时,它会创建40个文件以及2k个具有正确名称但附加的额外文件用m-000等等。这是因为我有200个区域,MultipleOutputs为每个映射器创建文件,所以200个映射器,每个映射器有40个唯一文件,所以它创建40*200个文件。如果没有自定义分区程序,我不知道如何避免这种情况。有什么方法可以强制将记录写入所

hadoop - 如何避免 Hadoop 中的 Map/Reduce 任务失败

我有一个迭代次数太多的循环和一个在Reducer函数中计算量很大的函数。while(context.getCounter(SOLUTION_FLAG.SOLUTION_FOUND).getValue()MAX_ITR是迭代次数-用户输入问题是当我在Hadoop集群上运行它时出现超时错误并且Reducer任务被终止17/05/0621:09:43INFOmapreduce.Job:TaskId:attempt_1494129392154_0001_r_000000_0,Status:FAILEDAttemptID:attempt_1494129392154_0001_r_000000_0

arrays - Hive Array<Struct<>>插入显示null

我创建了一个包含结构数组的临时表createtabletemp(regionkeysmallint,namestring,commentstring,nationsarray>)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'|'COLLECTIONITEMSTERMINATEDBY',';然后我将数据加载到表中LOADDATALOCALINPATH'/DataSets/region.csv'INTOTABLEtemp;什么时候需要的输出select*fromtemp;是4EUROPELowsaleBusinessRegion[{"n_nationkey":2