如果在Hive表中使用映射类型,如何测试空条目(键存在,但值为null)?
带表:
test1 (id string, m map<string, string>)
Run Code Online (Sandbox Code Playgroud)
我有一些看起来像这样的条目:
id1 {"b":"B","c":null}
id2 {"b":"B"}
Run Code Online (Sandbox Code Playgroud)
如果我运行查询:
select*from test1其中m ["c"]为空;
我将返回两行,因为表达式每次都评估为真.
如何在key存在和值之间进行测试为null?
如果我在 Hive 中定义一个表,并且将根据日期进行分区,并且我的日期采用 YYYYMMDD 格式,我应该选择哪种类型,int 还是 string?
如果它只是一个字段,因此在我为表提供的文件中,我可以看到使用字符串,即使只是为了让我可以搜索和识别可能进入我的数据的格式错误的条目。但由于我将指定分区作为加载过程的一部分,因此我知道我将始终拥有正确形成的值。
当在子句中使用时Where,分区字段通常是等于或小于/大于逻辑。
现在,我必须通过将子键格式化来手动生成复合键.这很丑陋而且效率不高.我想知道Hector是否提供了这样一组API来以更合适的方式处理复合键.