Json 如何使用HiveQL将ngrams数组字符串和estfrequency作为配置单元表中的独立元素获取?

Json 如何使用HiveQL将ngrams数组字符串和estfrequency作为配置单元表中的独立元素获取?,json,hadoop,twitter,hive,hiveql,Json,Hadoop,Twitter,Hive,Hiveql,我正在分析我自己的tweet,并使用将数据插入蜂巢表。我想以表格的形式找出我推文中所有两个单词短语的频率。输出应该类似于: phrase frequency ["the","room"] 1248.0 ["a","boy"] 1039.0 ["rt","to"] 1032.0 ["to","ct"] 986.0 现在,我能够对所有单字短语执行此操作,并且我得到的输出如下: phrase frequency [

我正在分析我自己的tweet,并使用将数据插入蜂巢表。我想以表格的形式找出我推文中所有两个单词短语的频率。输出应该类似于:

phrase             frequency
["the","room"]      1248.0
["a","boy"]        1039.0
["rt","to"]        1032.0
["to","ct"]         986.0
现在,我能够对所有单字短语执行此操作,并且我得到的输出如下:

phrase     frequency
["the"]     1248.0
["a"]       1039.0
["rt"]      1032.0
["to"]      986.0
["you"]     828.0
对于单字短语输出,我的代码是:

create table ng(new_ar array<struct<ngram:array<string>,estfrequency:double>>);

INSERT OVERWRITE TABLE ng 
SELECT context_ngrams(sentences(lower(text)),array(null),100) as word 
FROM tweets;

create table wordFreq (ngram array<string>,  estfrequency double);

INSERT OVERWRITE TABLE wordFreq 
SELECT X.ngram, X.estfrequency 
FROM ng LATERAL VIEW explode(new_ar) Z as X;    

select * from wordFreq;
创建表ng(新的数组);
插入覆盖表ng
选择上下文图(句子(小写(文本))、数组(空)、100)作为单词
来自推特;
创建表格wordFreq(ngram数组,estfrequency-double);
插入覆盖表wordFreq
选择X.ngram,X.estfrequency
从ng侧视图将(新的)Z分解为X;
从wordFreq中选择*;

如何修改上述代码以获得所需的输出

要将代码从1克更改为2克,请将
array(null)
更改为
array(null,null)

以下修改将在单独的列中给出这两个单词。 您可以将它们连接起来

create table wordFreq (word1 string, word2 string,  estfrequency double);

INSERT OVERWRITE TABLE wordFreq 
SELECT X.ngram[0],X.ngram[1], X.estfrequency 
FROM ng LATERAL VIEW explode(new_ar) Z as X; 

这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。这就是问题的答案!我回答的时间长了一点。