草庐IT

组合型

全部标签

hadoop - 如何将分区 Hive ORC 表中的多个 ORC 文件(属于每个分区)组合成一个大的 ORC 文件

我在Hive中有一个分区的ORC表。在用所有可能的分区加载表后,我得到了HDFS-多个ORC文件,即HDFS上的每个分区目录都有一个ORC文件。对于某些用例,我需要将每个分区下的所有这些ORC文件组合成一个大的ORC文件。有人可以建议我将这些多个ORC文件(属于每个分区)组合成一个大的ORC文件的方法。我已经尝试从分区表创建一个新的非分区ORC表。它确实减少了文件数量,但没有减少到单个文件。PS:从另一个表创建一个表完全是一个map任务,因此使用属性“setmapred.reduce.tasks=1;”将reducer的数量设置为1;没有帮助。谢谢 最佳答案

hadoop - 如何关联 RDD 中数组的所有组合?

我有一个来自model.productFeatures()的RDD,它以(id,array("d",(...)))的形式返回一个RDD>。例如:(1,array("d",(0,1,2)))(2,array("d",(4,3,2)))(3,array("d",(5,3,0)))...我想计算每个数组之间的成对相关性,然后为每个id返回另一个数组具有最高相关性的id。 最佳答案 您需要做的第一件事是获取所有元素对,除了它们相同的“对角线”。>>>rdd.cartesian(rdd).filter(lambda(x,y):x!=y).co

hadoop - 组合器是否有条件地运行

min.num.spills.for.combine(默认3)这是什么意思?a)最低编号map的溢出是为了让组合器运行?所以即使我们指定了一个组合器,它也不能保证运行?b)最低编号在组合器在通过io.sort.factor创建的合并/排序的单个文件上运行之前发生的溢出。因此,每次通过合并创建一个新文件时,组合器都会在其上运行,前提是没有。溢出量为min3我觉得正确答案是a),但任何人都可以证实这一点。 最佳答案 当map函数产生中间结果并首先将它们发送到buffer时,就会开始分区和排序,如果指定了combiner,此时会调用它。此

hadoop - 是否有用于 hadoop 流的组合输入格式?

我有许多小的输入文件,我想使用一些输入格式(如CombineFileInputFormat)将它们组合起来以启动更少的映射器任务。我知道我可以使用JavaAPI来执行此操作,但我不知道在使用Hadoop流式处理时是否有流式处理jar库来支持此功能。 最佳答案 Hadoop流默认使用TextInputFormat,但可以使用任何其他输入格式,包括CombineFileInputFormat。您可以使用选项-inputformat从命令行更改输入格式。请务必使用旧API并实现org.apache.hadoop.mapred.lib.Co

java - 在 Hadoop 中选择不同的记录并使用组合器

“MapReduceDesignPatterns”一书包含用于在数据集中查找不同记录的模式。这是算法:map(key,record):emitrecord,nullreduce(key,records):emitkey第66页说:TheCombinercanalwaysbeutilizedinthispatternandcanhelpiftherearealargenumberofduplicates.map阶段发出记录和NullWritable(不在线路上写入)。Combiner试图减少什么?没有减少的记录。 最佳答案 它试图减少

java - Hadoop 将多个部分文件组合成单个文件

目前我有part-00001part-00002我知道使用hdfs-getmerge是将这些文件合并为一个文件的最佳方式。但是,是否可以以编程方式做到这一点?我试过使用MultipleOutput,但它不起作用。我也尝试编写自己的CustomOutputFormat但是由于在将它并行写入文件时有多个reducer,它会出现org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException关闭数据输出流时出错。 最佳答案 您始终可以使用FileSystemclass从你的java代

java - N个有序元素的组合

我有一组K个元素,我需要创建一个N个有序元素的组合。例如,如果K=1并且我有{X1,emptyset}和n=2那么我有一个有序的对,我需要这样做:示例1:({},{})({X1},{}),({},{X1})({X1},{X1})请注意,我需要按以下顺序获取元素:首先是节点为0的元素作为两对之和,其次是节点为1的元素,ecc我的想法是制作初始集的部分集,一次添加一个元素,但我失去了理智。有什么建议么?我需要在Java中执行此操作。编辑1:换句话说,我需要创建一个Hasse图:http://en.wikipedia.org/wiki/Hasse_diagram其中每个节点都是部分集合的一个

列表中重叠对的 Python 组合

我正在运行一个Python脚本作为Hadoop流作业,但这篇文章更多地与一些核心Python概念相关,而不是与Hadoop相关的知识。基本上我有一组线,我想在其中找到重叠$catsample.txtID12143,2154,ID22913,14545ID32143,2390,3350,5239,6250ID42143,2154,2163,3340ID52143,2154,2156,2163,3340,3711我想最终找到重叠的记录对并计算它们,例如这里是这样的:2143,215432143,216322143,334022154,216322154,334022163,33402我这样

hadoop - 用于 hadoop 流的组合器 hack

当前版本的hadoop-streaming需要一个用于组合器的Java类,但我在某处读到我们可以使用如下hack:hadoopjar./contrib/streaming/hadoop-0.20.2-streaming.jar-input/testinput-output/testoutput-mapper"python/code/triples-mapper.py|sort|python/code/triples-reducer.py"-reducer/code/triples-reducer.py但是,这似乎行不通。我做错了什么? 最佳答案

创建一个具有从列表 /组合两个不同词典的摘要值的字典来总结值

我是Python的新手,并使用字典和列表。这是列表detail=[(1,[u'apple',u'2017-07-03T08:03:32Z','boston']),(2,[u'orange',u'2017-07-03T08:58:35Z','NOLOCATION']),(3,[u'grape',u'2017-07-03T12:14:12Z','boston']),(4,[u'cherry',u'2017-07-04T13:16:44Z','newyork']),(5,[u'strawberry',u'2017-07-06T10:56:22Z','sanfrancisco']),(6,[u'plu