当前位置: 首页 > 知识库问答 >
问题:

配置单元:如何将数据从分区表插入到分区表中?

费朗
2023-03-14

查询示例:

INSERT INTO TableName_New
--PARTITION (partition_year="2000", partition_month="01", partition_date="2000-01-01")
PARTITION (partition_year, partition_month, partition_date)
SELECT Column1, Column2
     --,CAST(Column3 AS BIGINT) Column3
     ,Column3
,partition_year, partition_month, partition_date
--,partition_year, partition_month, partition_date
FROM TableName
WHERE partition_year="2000"
    AND partition_month="01"
    AND partition_date="2000-01-01"

典型错误消息:

处理语句时出错:失败:执行错误,从org.apache.hadoop.hive.ql.exec.mr.MapredTask返回代码2

问题2:当我运行alter COLUMN...partition(...)时,如果分区文件被修改了,我如何解决无法从旧的临时表中选择的问题CHANGE COLUMN Column3 Column3 BIGINT cascade命令?我是否只运行相同的命令,但使用STRING而不是bigint?**完整错误消息:**

共有1个答案

程凯定
2023-03-14

你可以尝试的东西很少

>

  • 假设列3在新表中为bigint类型,而在旧表中为字符串,您可以在其上强制转换并使用colaese,类似于colaese(cast(col3 as bigint),0)as col3在select语句中尝试对所有类型转换的列执行相同的操作

    尝试插入覆盖

  •  类似资料:
    • 我需要将记录流插入到配置单元分区表中。表结构类似于 我想了解一下Hive是如何处理内部表中的插入的。 是否将所有记录插入到yyyy_mm_dd=2018_08_31目录中的单个文件中?或者配置单元在一个分区内拆分为多个文件,如果是,什么时候拆? 如果每天有100万条记录,并且查询模式介于日期范围之间,那么下面哪一条性能好? 内部表中没有分区 按日期分区,每个日期只有一个文件 按日期分区,每个日期有

    • 如何在压缩表中实现从Oracle到配置单元的Sqoop导入 配置单元:创建外部表xx.tmp_member3(a字符串、kpi_name字符串、b字符串、c字符串),由(YEAR INT,MONTH INT,DAY INT)行格式分隔字段以“”终止,“存储为ORC位置”/ENVIR./2019/4/20190416"TBLPROPERTIES(“ORC.compress”=“bzip2”); 我已

    • null 但在最后一步(4)中给了我一些错误。我在这里附加了几行错误。请帮忙。 我已经按照下面的链接完成了所有的步骤。在配置单元的外部表中创建分区

    • 我使用,但这给我带来了partitionBy和intsertInto不能同时使用的问题。

    • 我试图为我的表创建分区,以便更新一个值。 这是我的样本数据 我想把珍妮特的部门更新到B。 为此,我创建了一个以Department为分区的表。 创建外部表trail(EmployeeID Int、FirstName String、Designation String、Salary Int),按(Department String)行格式分隔字段进行分区,以“,”location'/user/sre