当前位置: 首页 > 面试题库 >

蜂巢中的ARRAY_CONTAINS个多重值

任元青
2023-03-14
问题内容

是否有一种方便的方法在配置单元中使用ARRAY_CONTAINS函数来搜索数组列中的多个条目而不是一个?因此,而不是:

WHERE ARRAY_CONTAINS(array, val1) OR ARRAY_CONTAINS(array, val2)

我想写:

WHERE ARRAY_CONTAINS(array, val1, val2)

完整的问题是,在运行脚本时,我需要从命令行参数中动态读取val1val2动态读取它们,而我通常不知道要使用多少个值作为条件。所以,你能想到的vals是一个逗号分隔的列表(或阵列)包含值val1val2...,我想写

WHERE ARRAY_CONTAINS(array, vals)

提前致谢!


问题答案:

有一个UDF在这里,可以让你把两个数组的交集。假设您的价值观具有结构

values_array = [val1, val2, ..., valn]

然后你可以做

where array_intersection(array, values_array)[0] is not null

如果它们没有任何共同点,[]则将被返回,因此[][0]null



 类似资料:
  • 蜂巢平台(OpenComb Platform)是一个基于 PHP 5.3 实现的深度云计算应用框架。蜂巢采用了扩展模式,系统中的功能和特性,都由扩展提供。 因此,用户可以通过开发和安装扩展来部署各种类型的互联网应用。

  • 我正在尝试连接到R中的hive。我已经在我的R环境中加载了RJDBC和rJava库。我使用的是一台Linux服务器,hadoop(hortonworks sandbox 2.1)和R(3.1.1)安装在同一个盒子中。这是我用来连接的脚本: 我得到了这个错误: 错误。jcall(drv@jdrv,“Ljava/sql/Connection;”,“连接”,如图所示。字符(url)[1],:java。l

  • 在配置单元中执行select语句时,我得到了一个错误。

  • 我正在执行一个HQL查询,该查询几乎没有连接、联合和插入覆盖操作,如果只运行一次,它就可以正常工作。 如果我第二次执行相同的作业,我就会面临这个问题。有人能帮我确定在哪种情况下我们会得到这个异常吗?

  • 我按照多个教程尝试使用RJDBC连接到Hive,但没有成功。 以下是我所拥有的: 我已经下载并放置在的文件。 我也尝试了最近的版本,但总是与相同的Cloudera版本同步。即使我的版本是5。XX。 我很确定是正确的,因为我已经使它在Python中与具有相同主机名/端口的一起工作。 错误: 错误在. jcall(drv@jdrv,"Ljava/sql/Connection;","Connection

  • 问题内容: 我的问题是:有没有办法像Oracle SQL函数一样在Hive中查找一个月的最后一天?: 谢谢。 问题答案: 您可以使用Nexr提供的UDF。它基于带有yyyy-MM-dd HH:mm:ss模式的日期字符串返回月份的最后一天。 您需要从其Github存储库中提取它并进行构建。他们的Wiki页面包含有关如何在Hive中进行构建和使用的所有信息。