创造name_tab的:的n-gram没有蜂巢话单
CREATE TABLE name_tab (country string,
new_item ARRAY<STRUCT<ngram:array<string>,
estfrequency:double>>);
Insert语句:
INSERT OVERWRITE TABLE name_tab
SELECT country, ngrams(sentences(var2),3,100) as word_map
FROM bdd
GROUP BY country;
name_tab_new的创作:
CREATE TABLE name_tab_new (country string, ngram1 string, ngram2 string, ngram3 string, estfrequency double);
Insert语句:
INSERT OVERWRITE TABLE name_tab_new
SELECT country , X.ngram[0], X.ngram[1], X.ngram[2], X.estfrequency
FROM name_tab
LATERAL VIEW explode(new_item) Z as X;
这些请求在Hive中工作。它按国家创建ngrams。 问题:对于一个国家,此ngram {aa, bb, cc}
与此ngram {bb, aa, cc}
之间存在差异。
我想要一个解决方案,这些单词命令并不重要。对于一个国家,我不想在{aa, bb, cc}
和{bb, aa, cc}
之间分歧。我只想要其中的一个。
非常感谢您
结果例如:
*英格兰,面包,三明治,果汁,120
英格兰,桌子,椅子,工具,54
英格兰,三明治,面包,果汁,32
意大利,海,罗姆人,Coliseo,47 *
其实,我想的是:
*英格兰,面包,三明治,果汁,152
英格兰,桌子,椅子,工具,54
意大利,海,罗马,COLISEO, 47 *
我希望在ngrams函数中有一个选项不考虑顺序。
在表bdd中,变量“var2”是由blanck分隔的几个单词的列表。
在表name_tab,我们有:
第一行 英格兰,{ “NGRAM”: “面包”, “三明治”, “果汁”], “estfrequency”:120.0},{ “ngram”:[“desk”,“chair”,“tool”],“estfrequency”:54.0},{“ngram”:[“sandwich”,“bread”,“juice”],“estfrequency”
下联 意大利,{ “的ngram”:[ “海”, “罗马”, “COLISEO”], “estfrequency”:47。0}
你的问题并不清楚,提供包括所需的结果的数据样本。 –
我有一个例子。谢谢 – Camel
我没有看到这个例子与这篇文章的关系 –