数组列值与配置单元中的正常列值之间的比较

     2023-04-14     7

关键词:

【中文标题】数组列值与配置单元中的正常列值之间的比较【英文标题】:comparision between array column values with normal column values in hive 【发布时间】:2015-09-18 06:51:25 【问题描述】:

表1

列 1 列 2 1 1,2,10 2 11,12,13 3 1,2,14 4 20,1,10 5 11,12,13,14

表 2

列 1 列 2 1 次购买 2 产品视图 10 购物车打开 11 结帐 12 购物车 添加 13 购物车移除 14 购物车视图 20 广告系列视图

结果表应如下所示

Column1 Column2 DESC 1 1,2,10 购买,产品视图,购物车打开 2 11,12,13 结帐,购物车添加,购物车移除 3 1,2,14 购买,产品查看 4 20,1,10 广告系列查看、购买、购物车打开 5 11、12、13、14 结帐、购物车添加、购物车移除、购物车视图

注意:

Table1.column2[0]==table2.column1 然后它将在我们新添加的结果表的 desc 列中显示 table2.column2 的值。

我们可以在这个查询中使用 join 吗?如果是,我们如何在 hive 中做?

请帮忙解决这个要求。

提前致谢, 暗部k

【问题讨论】:

【参考方案1】:

查询

add jar /path/to/jars/brickhouse-0.7.1.jar;
create temporary function collect as "brickhouse.udf.collect.CollectUDAF";

select a.col1
  , collect(b.col1)
  , collect(b.col2)
from (
    select col1, exp_col2
    from db.tbl1
    lateral view explode(col2) exptbl as exp_col2 ) a
join db.tbl2 b
on b.col1=a.exp_col2
group by a.col1

输出

1       [1, 2, 10]         ["Purchase","Product View","Cart Open"]
2       [11, 12, 13]       ["Checkout","Cart Add","Cart Remove"]
3       [1, 2, 14]         ["Purchase","Product View","Cart View"]
4       [1, 10, 20]        ["Purchase","Cart Open","Campaign View"]
5       [11, 12 ,13 ,14]   ["Checkout","Cart Add","Cart Remove","Cart View"]

确保使用brickhouse collect 而不是内置collect_list(),因为后者不会(必然)保持顺序。

【讨论】:

您好,感谢您的回复。我是这个蜂巢的新手。我可以理解上面的查询,但你能告诉我如何创建临时函数 collect 作为“brickhouse.udf.collect.CollectUDAF”;。谢谢,Anbu k 你能把jar /path/to/jars/brickhouse-0.7.1.jar 的下载链接发给我吗?谢谢,Anbu k 它说明了如何在 repo 的主页上构建 jar。 你上面提到的brickhouse收集的链接没有打开。回购? 我想和你确认一下,table1 这意味着 a.column2 是一个数组而不是字符串。因为我在任何地方都没有看到 a.cloumn2[]。

将包含列表的记录值与 Postgres 中的列值进行比较

】将包含列表的记录值与Postgres中的列值进行比较【英文标题】:ComparearecordvaluecontainingalistwithcolumnvaluesinPostgres【发布时间】:2021-02-0120:50:57【问题描述】:我需要编写一个选择语句,该语句必须使用一个列值将两个表链接在一... 查看详情

需要一种更好的方法来将一个列值与同一表行中的多个列值进行比较

】需要一种更好的方法来将一个列值与同一表行中的多个列值进行比较【英文标题】:Needabetterwaytocompareonecolumnvaluetomanycolumnvaluesinthesametablerow【发布时间】:2021-12-1222:38:50【问题描述】:我有一个这样构造的SQL2017数据表:A1235100... 查看详情

将 DataTable 列值与行过滤器 C# 中的枚举进行比较

】将DataTable列值与行过滤器C#中的枚举进行比较【英文标题】:CompareDataTableColumnValuewithEnuminRowFilterC#【发布时间】:2017-08-0708:05:24【问题描述】:我有一个要使用DataView过滤的数据表。过滤条件基于枚举值和字符串数据表列值。... 查看详情

将列值与第一行进行比较并保留 R 中的原始值

】将列值与第一行进行比较并保留R中的原始值【英文标题】:ComparecolumnvaluesagainstfirstrowandretainoriginalvaluesinR【发布时间】:2019-04-1900:23:44【问题描述】:我有一个很大的(当然)光谱数据矩阵,每列代表不同的质量值,而行代... 查看详情

ExtJS 4.2网格单元格编辑如何将列值与组合显示值绑定

】ExtJS4.2网格单元格编辑如何将列值与组合显示值绑定【英文标题】:ExtJS4.2gridcelleditinghowtobindcolumnvaluewithcombodisplayvalue【发布时间】:2014-08-1700:39:53【问题描述】:我有一个带有单元编辑插件的网格。我的一个列是int字段,它表... 查看详情

pyspark 将列值与另一列进行比较包含值范围

】pyspark将列值与另一列进行比较包含值范围【英文标题】:pysparkcomparecolumnvalueswithanothercolumncontainsrangeofvalues【发布时间】:2017-09-0310:39:45【问题描述】:我想将一列的值与具有参考值范围的另一列进行比较。我已尝试使用以下... 查看详情

Pyspark:将列值与另一个值进行比较

】Pyspark:将列值与另一个值进行比较【英文标题】:Pyspark:Comparecolumnvaluewithanothervalue【发布时间】:2021-04-0607:07:06【问题描述】:我有以下数据框:+----+----+----+----+|col0|col1|col2|col3|+----+----+----+----+|1|21|3|null||4|5|23|null||null|4|5|6||nu... 查看详情

熊猫:将列值与另一列中的特定值相加

】熊猫:将列值与另一列中的特定值相加【英文标题】:Pandas:sumcolumnvaluesagainstspecificvalueinanothercolumn【发布时间】:2021-08-3002:59:30【问题描述】:我正在使用这个数据框:InvoiceNoAmountYear-Month11002019-0121252019-0232002019-0243002019-03512020... 查看详情

当行悬停并且列值与另一行匹配时显示工具提示

】当行悬停并且列值与另一行匹配时显示工具提示【英文标题】:ShowToolTipwhenrowhoveredandcolumnvaluematcheswithanotherrow【发布时间】:2021-09-2521:48:45【问题描述】:我有一个DataGrid,它显示我的SQLServer表中的每一行,状态为Unallocated。... 查看详情

R - 如果列值与字符向量中的任何值匹配,则返回它旁边的列 [重复]

】R-如果列值与字符向量中的任何值匹配,则返回它旁边的列[重复]【英文标题】:R-ifcolumnvaluematchesanyvalueincharactervector,returncolumnbesideit[duplicate]【发布时间】:2018-06-0212:00:16【问题描述】:这里是R的新手,甚至是编码。我在数据... 查看详情

使用 SQL 比较两列值

】使用SQL比较两列值【英文标题】:ComparetwocolumnsvaluesusingSQL【发布时间】:2018-10-0304:48:27【问题描述】:我在一个表中有两列第1列的值为“从A迁移到B”第2列的值为“A”我需要在这两列之间进行搜索,以检查Column2(\'A\')中的值... 查看详情

比较Python中的数据框日期时间列值? [复制]

】比较Python中的数据框日期时间列值?[复制]【英文标题】:ComparingdataframedatetimecolumnvalueinPython?[duplicate]【发布时间】:2019-05-1213:24:52【问题描述】:我是熊猫新手。我有以下熊猫数据框,其中包含以下值:indexprint_statementtimestam... 查看详情

如何通过在配置单元的分区表中选择另一列来覆盖列值

】如何通过在配置单元的分区表中选择另一列来覆盖列值【英文标题】:Howtooverwritecolumnsvaluebyselectinganothercolumnsinpartitiontableinhive【发布时间】:2017-02-0909:42:30【问题描述】:您好,如何通过在hive中选择相同的分区表来覆盖列值... 查看详情

ResultSet:按索引检索列值与按标签检索

】ResultSet:按索引检索列值与按标签检索【英文标题】:ResultSet:Retrievingcolumnvaluesbyindexversusretrievingbylabel【发布时间】:2010-09-1606:04:43【问题描述】:在使用JDBC时,我经常遇到像这样的结构ResultSetrs=ps.executeQuery();while(rs.next())intid... 查看详情

比较Scala中连续行中的列值

】比较Scala中连续行中的列值【英文标题】:ComparecolumnvaluesinconsecutiverowsinScala【发布时间】:2017-01-0313:29:36【问题描述】:我是SparkScala的新手。我遇到了一种情况,我必须比较数据集中特定列的值,例如:源数据SourceDestinationDis... 查看详情

如何根据列值与没有关联的表进行 LEFT JOIN

】如何根据列值与没有关联的表进行LEFTJOIN【英文标题】:HowtoLEFTJOINwithtableswithoutassociationdependingoncolumnvalue【发布时间】:2021-01-2218:49:48【问题描述】:目标是使用JPA实现下一个SQL:SELECTf.idasid,f.entity_nameasentity_name,f.entity_idasentity... 查看详情

如果一个列值与第二个 df 列值匹配,我有两个数据框过滤 onmatch 列行

】如果一个列值与第二个df列值匹配,我有两个数据框过滤onmatch列行【英文标题】:Ihavetwodataframesifonecolumnvaluematchesseconddfcolumnvaluesfiltertheonmatchcolumnrows【发布时间】:2018-02-0812:47:40【问题描述】:我这里有两个数据框:df1在这里... 查看详情

sqlsfmc修剪列值与-left.sql(代码片段)

查看详情