Json 如何使用HiveQL将ngrams数组字符串和estfrequency作为配置单元表中的独立元素获取?
我正在分析我自己的tweet,并使用将数据插入蜂巢表。我想以表格的形式找出我推文中所有两个单词短语的频率。输出应该类似于: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 [
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;
这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。这就是问题的答案!我回答的时间长了一点。