創造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
我沒有看到這個例子與這篇文章的關係 –