在hive中,如果选择数据时缺少外部表分区位置数据,如何避免错误?

xriantvc  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(302)

我已经创建了表外部表 "test" 带分区列日期。
由于在将数据导入时出现了一些错误 "test" 。它只是创建了目录(分区目录),但没有加载到数据中,数据丢失。
从特定分区中选择数据时, it is not showing any error it is giving zero records .
但我想抛出错误,如果数据丢失时,选择,有什么办法,我们可以处理在配置单元?

tsm1rwdh

tsm1rwdh1#

可以使用配置单元中动态分区的属性使加载进程失败,该属性可以在写入时控制该行为。根据这里的文件你可以找到

hive.error.on.empty.partition

    Default Value: false
    Added In: Hive 0.7.0

Whether to throw an exception if dynamic partition insert generates empty results.

我在静态分区上看不到等价的分区,因此您可能需要查询该特定分区并查看它是否为空。例如,如果行数小于1,则可能导致加载过程失败
读取时的另一个选项是使用一个名为 assert_true 你可以在这里找到。如您所见,它返回一个void,格式为

assert_true(boolean condition)

Throw an exception if 'condition' is not true, otherwise return null (as of Hive 0.8.0). For example, select assert_true (2<1).

相关问题