草庐IT

分区Partition

全部标签

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

hadoop - Hive 根据文件名创建表分区

Hadoop新手。我知道如何在Hive中创建表(语法)创建具有3个分区键的表。但key在文件名中。文件名示例:ServerName_ApplicationName_ApplicationName.XXXX.log.YYYY-MM-DD目录中有数百个文件想要创建一个表,其中包含文件名中的以下分区键:ServerName、ApplicationName、Date并将所有文件加载到表中HiveScript是首选,但对任何其他想法持开放态度(文件是CSV。我知道文件的架构(列定义)) 最佳答案 我假设文件名的格式为ServerName_Ap

hadoop - Hive - 分桶和分区

我们应该根据什么来缩小对Hive中的一组列使用分区还是分桶?假设我们有一个庞大的数据集,其中有两列最常被查询——所以我明显的选择可能是根据这两列进行分区,但如果这会导致大量小的在大量目录中创建的文件,而不是根据这些列对数据进行分区是一个错误的决定,并且分桶可能是一个更好的选择。我们能否定义一种方法来决定是否应该进行分桶或分区? 最佳答案 分桶和分区并不排斥,您可以同时使用。根据我相当长的Hive经验,我的简短回答是“您应该始终使用分区,有时您可能也想分桶”。如果您有一个大表,分区有助于减少您查询的数据量。分区通常表示为HDFS上的目

hadoop - Spark RDD 持久化和分区

例如在Spark中创建某个RDD时:lines=sc.textFile("README.md")然后在这个RDD上调用一个转换:pythonLines=lines.filter(lambdaline:"Python"inline)如果你在这个转换后的过滤器RDD上调用一个Action(例如pythonlines.first)当他们说每次你运行一个Action时RDD将被重新计算是什么意思在他们身上?我认为在您对该原始RDD调用filter转换后,您使用textFile方法创建的原始RDD不会保留。那么它是否会重新计算最近转换的RDD,在这种情况下,它是我使用过滤器转换创建的RDD?如果

apache-spark - 如何根据数据大小重新分区rdd

我正在开发SparkStreaming项目,该项目从Kafka获取数据并应用一些规则并将数据保存在Hive中。我的问题是数据摄取率不固定。60秒可能是100万条消息到来,也可能是1条。我想在Dstream上添加重新分区。因为Dstream只有3个分区,无法在一分钟内处理百万条记录。重新分区在少于20条记录时会出现问题。它在Hive中创建多个小文件。dataStream.map(_._2).repartition(20)我的问题是如何根据rdd大小对rdd进行重新分区。这样它就可以处理一条消息或100万条消息。 最佳答案 你无法以任何

mysql - sqoop导出mysql分区

我正在尝试使用sqoop从分区的配置单元表导出到mysql。起初我尝试做$sqoopexport--connectjdbc:mysql:///--username-P--tablesource_edge_daily--export-dir/path/to/table/--input-fields-terminated-by'\t'--verbose命令错误说Openfailedforfile/path/to/table//,attempttoopenadirectory当我指向分区目录时$sqoopexport--connectjdbc:mysql:///--username-P--t

hadoop - 在 MapReduce 中不运行分区器的多个 reducer

我试图理解在MR作业中运行多个reducer的概念,并了解到它是分区器决定哪个(键,值)对进入哪个reducer。我的问题是:我们可以在不运行partitioner的情况下运行多个reducer吗?那是一个有效的场景吗? 最佳答案 将分区器视为决定哪个化简器(桶)将处理映射器的特定键值(元素)输出的实体。默认的分区器使用键的散列函数在reducer中划分元素。打个比方,核心javamapcollection是如何使用hash函数来决定元素(key-value)的bucket(reducer)。在此过程中,它保证将相同键发送到单个re