草庐IT

平分分区

全部标签

hadoop - 如何在没有分区的情况下将数据附加到现有的配置单元表

我创建了包含过去10年历史股票数据的配置单元表。从现在开始,我必须每天附加数据。我想过根据日期创建分区,但它导致许多分区大约3000加上每个新日期一个新分区,我认为这是不可行的。任何人都可以建议一种最佳方法来将所有历史数据存储在表中并在新数据出现时附加新数据。 最佳答案 对于每个分区表,如何对表进行分区的决定主要取决于您将如何查询表。另一个考虑因素是每个分区要有多少数据,因为分区不应该太小。每一个都应该至少与一个HDFSblock一样大,否则它会占用太多目录。这就是说,我认为3000个分区不是问题。在之前的工作中,我们有一个巨大的表

mysql - 按 unix 时间戳的 Hive 动态分区

我正在Hive中创建一个表,运行一个映射器转换,然后保存一个表。我想根据运行Hive查询的时间对表进行分区。我创建表:CREATEEXTERNALTABLEIFNOTEXISTStesttable(test_testSTRING)PARTITIONEDBY(timeSTRING)LOCATION'loc/table';然后在尝试此操作时运行转换并保存表:FROM(MAPone.test_testUSING'pythonjob.py'AStest1FROMone)test_stepINSERTOVERWRITETABLEtesttablePARTITION(time=unix_times

java - 在自定义键的情况下,如何为自定义分区程序设置 numReduceTask

HashPartitionerhash=newHashPartitioner();@OverridepublicintgetPartition(CompositeKeyClasskeyClass,TextvalClass,intnumOfPartition){//TODOAuto-generatedmethodstubtry{String[]type=valClass.toString().split(",");if(type[0].equals("Mapper1")){return(hash.getPartition(keyClass.getFirst(),valClass,numO

Java String 具有代码保留顺序和基于哈希的分区

基于javaapi文档中的以下函数,它似乎确实保留了顺序。s[0]*31^(n-1)+s[1]*31^(n-2)+...+s[n-1]我还测试了一些hascode与实际字符串顺序相似的示例。但只是想和其他人核实一下,以防我在这里遗漏了什么。我接下来的问题是关于在使用hadoop或spark的大数据应用程序中是否使用HashPartitioner或OrderPreservingPartitioner。如果您的key只是一个Java字符串,那么HashPartitioner也应该保留顺序,对吧? 最佳答案 您的前提是错误的:它不保持秩序

sql - 插入到具有动态分区的配置单元表中,只将第一个分区写入磁盘而不是全部

我正在尝试将数据写入配置单元表但失败了。我在Cycle_dt=null结束时遇到错误,并且只有一个分区正在写入。这是第一天。sethive.auto.convert.join=true;sethive.optimize.mapjoin.mapreduce=true;sethive.exec.dynamic.partition.mode=nonstrict;sethive.exec.dynamic.partition=true;setmapred.map.tasks=100;Insertintotabledynamic.dynamic_test_avro_v1partition(cycl

oracle - 将表中的特定分区导入 hadoop

我正在使用sqoop将数据导入hadoop。我正在使用以下命令将表导入hadoop。sqoopimport\--connectjdbc:oracle:thin:@172.16.XXX.XXX:15XX:TABS\--usernameuser\--passwordpass\--tableTABS.ADM_LOG0009\--target-dir/hadoop/hptabs/recharge现在我有另一个名为IVM_IMAGE的表,它是一个分区表。我只想将3个分区从Oracle导入到hadoop。请帮助我为此编写命令。Oracle表名:TABS.IVM_IMAGE分区:LESS201611

hadoop - 通过将分区目录复制到仓库中来复制 Hive 管理的表

我有一个包含YEAR,MONTH,DAY分区的现有分桶表,但我想通过INGESTION_KEY添加额外的分区,该列不存在于现有表。这是为了适应future的表插入,这样我就不必在每次提取该日期的数据时都OVERWRITEYEAR,MONTH,DAY分区;我可以做一个简单的INSERTINTO并创建一个新的INGESTION_KEY分区。我的新表中需要一年的数据才能开始,所以我想将现有表中一年的分区复制到新表中。与其对每个分区执行HiveINSERT,我认为使用distcp将文件复制到HDFS中Hive仓库目录中新表的分区目录会更快,然后ADDPARTITION到新表。所以,这就是我所做

hadoop - 如何在 Hive 中插入以原始日期作为分区的表?

createtableh5_qti_desc(h5idstring,querystring,titlestring,itemstring,query_idsstring,title_idsstring,item_idsstring,labelbigint)PARTITIONEDBY(daystring)LIFECYCLE160;insertoverwriteintoh5_qti_descselect*fromaaa;我创建了一个名为h5_qti_desc的表,我想从另一个aaa表插入到其中,该表有天的字段并且aaa中没有分区。表aaa有好几天,比如'20171010','2017101

hadoop - 按列分区的HIVE从另一张表插入数据后全0

我正在使用Hortonworks在HIVE中创建分区表并使用HIVE中的另一个表将数据插入其中。问题是,在我将数据插入到我创建的表中之后,结果表中分区列(passenger_count)中的所有值都显示为0,即使原始表中的值都不为0。以下是我创建分区表并向其中插入数据所采取的步骤:运行以下查询以创建名为“date_partitioned”的表:createtabledate_partitioned(tpep_dropoff_datetimestring,trip_distancedouble)partitionedby(passenger_countint);运行以下查询以将数据从另一

hadoop - 从 hdfs 中删除文件是否会删除相应的配置单元外部表分区?

我有一个每天动态创建分区的配置单元外部表。为了释放内存空间,我打算从hdfs中删除一些文件。从hdfs中删除文件是否也会删除相应hive表的分区?(或)我们是否需要明确删除配置单元表的分区? 最佳答案 您必须单独删除分区。我建议先使用hive命令删除分区,然后再删除文件。 关于hadoop-从hdfs中删除文件是否会删除相应的配置单元外部表分区?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que