问题标签 [hive-partitions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hadoop - Hive 的动态分区无法写入最终文件
我正在尝试将具有 1 个分区列的表中的数据加载到具有 2 个分区列的新表中,较新的分区列是第一个表中的常规列。
例如 create table 语句(为便于理解而简化和更改):
我有一个简单的插入查询,如下所示:
所以这一直运行并表示该工作已在终端和 Tez UI 中成功完成。即使在整个过程中,我也可以看到文件实际上填充在 S3 上的 tmp/staging 文件夹中,并具有所有正确的分区。但是,当它最终完成时,实际上没有写入任何文件,并且所有临时文件都被删除。
对分区进行硬编码(静态分区)有效,并且从 1 个分区列表到另一个 1 个分区列表的动态分区也有效。从 1 个分区的列表开始并尝试从第一个表派生第二个分区是行不通的。
hive - 从 hive 表中删除分区是否会删除它的子分区?
我有一个外部配置单元表,其中有诸如 year = 2017、year = 2018 之类的分区,并且在其中我有每个月的分区,分别是 year = 2017 和 year = 2018。
我的问题是:
如果我删除分区 year = 2017,它会删除 year = 2017 的所有月份分区吗?
如果是内部表会发生什么?
hive - 如何手动创建/复制数据到 hive 中的分区
我正在研究一个配置单元解决方案,其中我需要将一些值附加到大容量文件中。因此,我没有附加它们,而是尝试使用 map-reduce 方法该方法如下
表创建:
我在文件中有一些数据,但在上述查询中没有看到任何结果。文件被正确复制到正确的位置。我做错了什么?查询没有问题
此外,我将循环多个日期。我想知道这是否是正确的方法。
apache-spark - 外部 Hive 表刷新表与 MSCK 修复
我将外部配置单元表存储为 Parquet,按列分区,as_of_dt
并通过火花流插入数据。现在每天都会添加新分区。我这样做是为了 msck repair table
让 hive 元存储获取新添加的分区信息。这是唯一的方法还是有更好的方法?我担心如果下游用户查询表,是否会msck repair
导致数据不可用或数据陈旧的问题?我正在浏览 HiveContext
API 并查看refreshTable
选项。知道这是否有意义refreshTable
吗?
hive - Hive - 使用“选择查询”和“分区依据”命令创建表语句
我想在 Hive 中创建一个分区表。我知道首先在“创建表...分区”命令的帮助下创建表结构,然后使用“插入表”命令将数据插入表中
但我想做的是将这两个命令组合成一个查询,如下所示,但它会引发错误。
Year 和 Month 都是 master_extract 表中的两个单独的列。
有没有办法实现这样的目标?
apache-spark - Spark 结构化流写入流到 Hive ORC 分区外部表
我正在尝试使用 Spark Structured Streaming - writeStream
API 写入外部分区 Hive 表。
在 Spark 代码中,
我看到在非分区表上,记录被插入 Hive。但是,在使用分区表时,火花作业不会失败或引发异常,但不会将记录插入 Hive 表。
感谢任何处理过类似问题的人的评论。
编辑:
刚刚发现 .orc 文件确实写入了 HDFS,具有正确的分区目录结构:例如。/_table_loc/_table_name/year/month/day/part-0000-0123123.c000.snappy.orc
然而
不返回任何行。
表 'XX' 的和InputFormat
分别是和
。OutputFormat
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
hadoop - Hive 如何处理插入到内部分区表中?
我需要将记录流插入 Hive 分区表。表结构类似于
我想了解 Hive 如何处理内部表中的插入。
所有记录是否都插入到 yyyy_mm_dd=2018_08_31目录中的单个文件中?或者 hive 在一个分区内拆分为多个文件,如果是这样,什么时候?
如果每天有 100 万条记录并且查询模式将在日期范围之间,以下哪一项表现良好?
- 内部表中没有分区
- 按日期分区,每个日期只有一个文件
- 按日期分区,每个日期有多个文件
hive - 如何在 hive 中按月和日对表进行分区
我创建了一个表:
然后我按月和日创建了一个分区
然后将数据插入到分区表中
如何从 ordertime 中提取月、日?
apache-spark - 分区表上的 Hive 增量
我正在努力在 Hive 表 A 上实施增量过程;表 A - 已在配置单元中创建,并在 YearMonth ( YYYYMM 列)上进行了分区,并具有完整的卷。
在持续的基础上,我们计划从源导入更新/插入并在 hive Delta Table 中捕获;
如下图所示,Delta 表表明新的更新与分区( 201804 / 201611 / 201705 )有关。
对于增量过程,我计划
- 从受影响的原始表中选择 3 个分区。
INSERT INTO delta2 select YYYYMM from Table where YYYYMM in ( select distinct YYYYMM from Delta );
将 Delta 表中的这 3 个分区与原始表中的相应分区合并。(我可以按照 Horton 的 4 步策略来应用更新)
/li>从原始表中删除 3 个分区
/li>将新合并的分区添加回原始表(具有新更新)
我需要自动化这个脚本 - 你能建议如何将上述逻辑放在 hive QL 或 spark 中 - 特别识别分区并将它们从原始表中删除。
hive - 无法删除配置单元表分区包含特殊字符等号(=)
在 Hive 表中插入数据,分区列 (CL) 值为 ('CL=18'),存储为 /db/tbname/CL=CL%3D18(无效分区包含 url 编码的等号特殊字符)。
根据hortonworks 社区,有人提到 hive 存储特殊字符作为 url 转义。
- 我尝试使用转义序列作为等号 \x3D(hex) , \u0030 (unicode) 但没有用
例如:alter table tb drop partition (CL='CL\x3D18'); <-- 没用
有人可以帮助我吗,我是否为 Equal(=) 符号做错了什么?