Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 从同一行连接3个文本变量_Hadoop_Text_Hive_Hiveql - Fatal编程技术网

Hadoop 从同一行连接3个文本变量

Hadoop 从同一行连接3个文本变量,hadoop,text,hive,hiveql,Hadoop,Text,Hive,Hiveql,我有3个变量,它们是文本。它可以是一个句子,而不仅仅是一个词 例如: 变量1:嘿,你好吗?。变量1:我很好。变量1:你很好 我正在运行这个: LOWER(CONCAT(COALESCE(title," "), COALESCE(hotel_positive," "), COALESCE(hotel_negative,""))) 较低(CONCAT(联合(标题“”),联合(酒店正“”),联合(酒店负“”)) 输出: Hey, how are you?.I am fine.You are nice

我有3个变量,它们是文本。它可以是一个句子,而不仅仅是一个词

例如:

变量1:嘿,你好吗?。变量1:我很好。变量1:你很好

我正在运行这个:

LOWER(CONCAT(COALESCE(title," "), COALESCE(hotel_positive," "), COALESCE(hotel_negative,""))) 较低(CONCAT(联合(标题“”),联合(酒店正“”),联合(酒店负“”)) 输出:

Hey, how are you?.I am fine.You are nice 嘿,你好吗?我很好。你很好 这是不正确的,因为如果我已经计算了单词(这里的最终目标),“你?.I”或“很好。你”将作为一个单词出现

你知道如何改进吗

with your_data as(
select 'Hey, how are you?' Variable1, 'I am fine.' Variable2, 'You are nice' Variable3
)

select w.word, count(*) cnt
from
(
select sentences(lower(concat_ws(' ', Variable1,Variable2,Variable3))) sentences from your_data
)d lateral view explode(sentences) s as sentence
   lateral view explode(s.sentence) w as word
group by w.word;
结果:

word    cnt
am      1
are     2
fine    1
hey     1
how     1
i       1
nice    1
you     2
另见此答案:

总数确实是10:

with your_data as(
select 'Hey, how are you?' Variable1, 'I am fine.' Variable2, 'You are nice' Variable3
)

select  count(*) cnt
from
(
select sentences(lower(concat_ws(' ', Variable1,Variable2,Variable3))) sentences from your_data
)d lateral view explode(sentences) s as sentence
   lateral view explode(s.sentence) w as word
;
结果:

10
结果:

word    cnt
am      1
are     2
fine    1
hey     1
how     1
i       1
nice    1
you     2
另见此答案:

总数确实是10:

with your_data as(
select 'Hey, how are you?' Variable1, 'I am fine.' Variable2, 'You are nice' Variable3
)

select  count(*) cnt
from
(
select sentences(lower(concat_ws(' ', Variable1,Variable2,Variable3))) sentences from your_data
)d lateral view explode(sentences) s as sentence
   lateral view explode(s.sentence) w as word
;
结果:

10

我在这里回答了您关于字数计算的问题:。标点符号像什么?或不应被视为单词字符,以及在您的示例中,LOWER返回驼峰大小写的情况??谢谢@leftjoin。这有点不同,因为步骤不一样。谢谢@leftjoin。这有点不同,因为步骤不一样。在本例中,我首先需要按行计算所有连接的单词(例如:“嘿,你好吗?.I很好。你很好”输出为10。由于“you?.I”或“fine.you”场景结果将是8。你回答的另一个案例是计算整个数据集中的单词频率,但按行计算。因此,对于这篇文章,我需要能够连接起来,避免句子的结尾和下一个句子的开头连接起来。“你?。我”应该是“你?。我“希望很清楚,谢谢你的帮助!”很好。你”将以一个词的形式出现。-这是错误的陈述。它将以两个词的形式出现swell,我已经回答了。看,它在我的回答中:
concat\ws(“”,Variable1,Variable2,Variable3)
-这在3个变量之间插入空格。我在这里回答了您关于字数的问题:。标点字符如?或。不应被视为字数字符,以及在您的示例中小写返回驼峰大小写的原因??谢谢@leftjoin。这有点不同,因为步骤不同。谢谢@leftjoin。这有点不同nt as步骤不同。在这种情况下,我需要首先按行计算所有连接的单词(例如:“嗨,你好吗?。我很好。你很好”输出为10。由于“你?.I”或“很好。你”场景结果将是8。你回答的另一个案例是计算整个数据集中的单词频率,但按行计算。因此,对于这篇文章,我需要能够连接起来,避免句子的结尾和下一个句子的开头连接起来。“你?。我”应该是“你?。我“希望很清楚,谢谢你的帮助!”很好。你”将以一个词的形式出现。-这是错误的陈述。它将以两个词的形式出现swell,我已经回答了。看,它在我的回答中:
concat\ws(“”,Variable1,Variable2,Variable3)
-这在3个变量之间插入空格。对于我需要的这篇特定文章,有“你好吗?”变量1,“我很好。”变量2,“你很好”变量3,输出是10,因为我有10个字,每行放3个变量together@Robbie增加了这个特定的职位,我只是需要总字数,有'嘿,怎么是吗?'Variable1',我很好。'Variable2',你很好'Variable3,输出是10,因为我有10个字,每行放3个变量together@Robbie增加总字数