草庐IT

平分分区

全部标签

hadoop - 用户 ALTER TABLE ... CONCATENATE 与 Hive 中的部分匹配分区

我想在Hive中使用ALTERTABLE...CONCATENATE功能,但似乎我必须提供准确的分区名称。例如,我有一个包含两个分区列、日期和组的表。我希望能够做这样的事情:altertablemytablepartition(insert_date='2017-04-11',group='%')CONCATENATE;但是我找不到这样做的方法。 最佳答案 Concatenate不支持这个。 关于hadoop-用户ALTERTABLE...CONCATENATE与Hive中的部分匹配分区

hadoop - Impala - 替换表分区中的所有数据

我有一个程序可以生成有关Impala表分区的所有数据。该程序将数据写入HDFS文本文件。如何(物理地)删除以前属于该分区的所有数据,并用转换为Parquet格式的新文本文件中的数据替换它们?如果我使用原始HDFSAPI物理删除组成分区的旧Parquet文件,它会干扰Impala吗? 最佳答案 为您的文本文件创建表格:createexternaltablestg_table(...)location'';外部数据更改后,您必须刷新它:refreshstg_table;然后插入你的目标表insertoverwritetabletarge

hadoop - Hive 分区/分桶表的实际结构是什么?

我无法在虚拟框中配置多数据节点集群不考虑复制因子取1。假设我有一个10GB的文件和一个具有2个不同值的列城市,并且我有2个数据节点。想按城市划分数据。我还将在每个分区的2个桶中存储邮政编码。我的问题是每个分区是否会出现在每个数据节点中,或者每个节点将只有不同的分区。我的理解是每个节点都有所有分区,但在某些节点中,由于数据文件中的值不足,分区可能不存在。每个数据节点中的每个分区都将按邮政编码分桶,并且某些分桶可能没有值。 最佳答案 分区是使用目录实现的。目录包含文件。可能是一个,也可能是很多。桶是使用文件实现的。一个桶可能与一个文件相

oracle - Hive- 检查子分区的解决方法

我有一个Oracle表Tab_O及其在HiveTab_H中的等效表。两个表都根据Part_Col列进行分区。Tab_O/Tab_H+---+---+---+----------+-----+|A|B|C|Part_Col|Bal|+---+---+---+----------+-----+|2|1|9|2005|100|+---+---+---+----------+-----+|3|1|9|2005|400|+---+---+---+----------+-----+|3|2|8|2005|300|+---+---+---+----------+-----+|4|1|9|2005|2

hadoop - Hive 中的时间戳分区

我正在尝试在配置单元中创建基于时间戳的分区。但是配置单元正在创建基于数据的分区。下面是我的代码。有人可以帮忙吗?cattest1.shdat=`date+'%Y%m%d%H:%m:%S'`hive-fload.hql-hiveconffile_load_timestamp=$dat;catload.hqlINSERTOVERWRITEtableperm.testpartition(file_load_timestamp='${hiveconf:dat}')SELECTa,bFROMwork.temp;dt=20180102/=HDFS路径是这样创建的。dt=20180102103455

python - 如何使用 luigi 将输出写入 orc 格式的分区表?

假设我们有这样的工作:classMRjob(JobTask):defoutput(self):return...defrequires(self):return...defmapper(self,line):#somelineprocessyieldkey,(...information,storedinhashabletype...)defreducer(self,key,values):#somereducelogic...forexamplethisunique=set(values)foreleminunique:yieldkey,elem[0],elem[1]我应该在输出方法

Hadoop 的默认分区器 : HashPartitioner - How it calculates hash-code of a key?

我试图了解MapReduce中的分区,我了解到Hadoop有一个默认的分区程序,称为HashPartitioner,分区程序有助于在决定给定键将转到哪个reducer时。从概念上讲,它是这样工作的:hashcode(key)%NumberOfReducers,where`key`isthekeyinpair.我的问题是:HashPartitioner如何计算key的哈希码?是简单地调用key的hashCode()还是此HashPartitioner使用一些其他逻辑来计算key的哈希码?谁能帮我理解一下? 最佳答案 默认的分区器简单地

java - Hadoop 错误 java.lang.NoSuchMethodException :- <init>() 中的自定义分区程序

我正在尝试制作一个自定义分区器,以将每个唯一键分配给单个缩减器。这是在默认的HashPartioner失败之后Alternativetothedefaulthashpartionerprovidedwithhadoop我不断收到以下错误。从我做一些研究可以看出,它与构造函数没有接收到它的参数有关。但是在这种情况下,对于hadoop,参数不是由框架自动传递的吗?我找不到代码中的错误18/04/2017:06:51INFOmapred.JobClient:TaskId:attempt_201804201340_0007_m_000000_1,Status:FAILEDjava.lang.R

apache - Hadoop 全序分区

为什么在hadoop中进行totaltotalorder分区?。哪些场景需要进行全序划分?我的理解是在多个reducer之后,每个reducer结果都会被key排序。那么为什么我们需要进行总订单划分。如果您可以分享任何图形代表,那就太好了。例子? 最佳答案 总顺序分区将在所有reducer中按键对输出进行排序。这允许您组合多个reducer的输出并仍然获得排序的输出。下面的简单示例:没有总订单划分reducer1'soutput:(a,val_a)(m,val_m)(x,val_x)reducer2'soutput:(b,val_b

java - Hadoop MapReduce - 如何创建动态分区

如何使用javamapreduce创建动态分区,就像我们有按国家/地区列分组的sql。示例我有基于国家/地区的数据集,需要根据国家/地区(分区)分隔记录。我们不能限制国家。因为每天都会获得新的国家/地区数据。 最佳答案 您可以利用dynamicpartitioningfeatureofHive根据传入数据自动填充分区。下面的示例演示了根据国家/地区信息对原始数据进行自动分区。创建一个原始数据文件(country1.csv),其中包含多个国家/地区的数据1,USA2,Canada3,USA4,Brazil5,Brazil6,USA7,