问题标签 [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.

0 投票
0 回答
770 浏览

hive - 多表插入 Hive 中的单个表

我有一个在“部分”列上分区的分区配置单元表。该表有两个分区值 part='good' 和 part='bad'。

我需要将记录从“坏”分区移动到“好”分区并覆盖“坏”分区以删除移动的记录。更复杂的是,我正在寻找一种在单个查询中执行此操作的方法,否则异常处理将很困难。

我尝试使用在同一个表上具有两个插入查询的多表插入来做到这一点,如下所示,

但是上面的查询总是插入,而不是一个插入,另一个插入覆盖!

我什至尝试使用公用表表达式并使用公用表同时插入到该表中,但没有运气!

有没有其他方法可以在单个查询中实现,或者我在上述步骤中做错了什么?

请注意,我正在使用 hive 1.2 的 HDP 集群上执行此操作

0 投票
1 回答
2307 浏览

hive - Hive - 仅获取一个或多个 hive 表的最新分区

我在 Hive 中有三个分区表(每年分区),所有表都有多个分区。作为我的要求的一部分,我将加入所有这三个表。现在我只想为最新的分区而不是之前创建的分区运行这个 sql。

我尝试在 where 子句中使用 max(partition) 但似乎不受支持

我做了类似下面的事情(不是确切的代码。只是一个代码概念)

我收到了这个错误

失败:SemanticException [错误 10128]:第 108:23 行尚不支持 UDAF 'max' 的位置

我可以将多个 where 子句与包含“从表中选择 max(year)”的子查询一起用于所有表,但这似乎不可行。关于如何实现这一目标的任何想法?

更新 我尝试了具有以下条件的 where 子句,但似乎 where 子句中只支持一个 suq-query。不知道如何解决这个问题。感谢对此的任何投入

0 投票
3 回答
11648 浏览

hive - 如何截断配置单元中的分区外部表?

我打算截断具有一个分区的配置单元外部表。因此,我使用以下命令截断表:

但是,它给我一个错误说明:无法截断非托管表 abc。

任何人都可以就同样的问题向我提出建议...

0 投票
2 回答
67 浏览

apache-spark - Spark我可以在执行textFile时手动指定分区数吗

spark 会根据输入文件的大小自动决定分区的数量。我有两个问题:

我可以指定分区的数量而不是让火花决定多少分区吗?

重新分区时洗牌有多糟糕?演出真的很贵吗?我的情况是我需要重新分区为“1”才能写入一个 Parquet 文件,分区为“31”。有多糟糕?为什么?

0 投票
1 回答
388 浏览

hive - 如何在 hive 插入分区语句中使用 UDF 值或列值,而不是常量值

我创建了一个数据表,如下所示:

我每天都有一项工作将数据插入到daily_table

它可以使用以下语句工作

我的期望是它可以自动使用当天而不是使用硬编码日期字符串(如 20181126")

我试过了

并得到以下异常

我试过了

得到了类似的例外。

在分区语句中使用值而不是常量是否可行?

0 投票
1 回答
283 浏览

hive - Hive External Table is pointing to old location after altering the location to new path

Initially I create a Hive external table following location

hdfs://user/temp2

and then I altered the location to following.

hdfs://user/temp3

Now even after running MSCK repair table my table is pointing to old location (hdfs://user/temp2)

The table is dynamically partitioned.

0 投票
1 回答
910 浏览

hive - 从 hive 外部表中的分区中删除列

我有一个带有 3 个分区列(A、B、C)的配置单元外部表,现在我想从分区中删除 B 和 C 列。可以这样做吗?我尝试过使用 Alter table tab_name drop column col_name; --- 但它会抛出一个错误,指出无法删除分区列。

0 投票
2 回答
772 浏览

hive - 我们如何重命名 Hive 中的多个分区?

如果有两个分区列,例如。学校名称和班级如何重命名所有学校分区中存在的特定班级分区

所以,

/学校=ABC/班级=1/

/学校=PQR/班级=1/

.

.

.

.

class = 1 应转换为 class = 2

/学校=ABC/班级=2/

/学校=PQR/班级=2/

.

.

.

.

编辑:在这个例子中只有两所学校,但它是可变的,可能有数千所学校。

0 投票
1 回答
327 浏览

hadoop - Hive:同时执行选择和删除分区配置单元查询时出错

同时运行两个查询时出现错误。

这里是风景。

我正在使用 AWS EMR,下面是我的配置单元表架构。

第一个查询:

第二个查询:

在运行第一个查询时,我同时执行了第二个查询,所以我在第一个查询中遇到了这个错误

谷歌搜索后我找到了这个链接

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emrfs-files-tracked.html

无论如何要在运行时同步元数据,否则在第一个状态完成之前不会执行第二个查询。

请帮助我解决此问题或任何建议,设置任何可以解决问题的参数。

0 投票
1 回答
383 浏览

sql - 如何按所有值对表进行分区?

我有一个外部表,现在我想给它添加分区。我有 224 个唯一的城市 id,我只想写alter table my_table add partition (cityid) location /path;,但蜂巢抱怨说我没有为城市 id 值提供任何东西,它应该是 eg alter table my_table add partition (cityid=VALUE) location /path;,但我不想alter table为城市 id 的每个值运行命令,我怎样才能一次完成所有id?

这是 hive 命令行的样子:

失败:ValidationFailureSemanticException 表未分区但分区规范存在:{cityid=null}