在 Hive 中如何从特定字符开始获取结果

Posted

技术标签:

【中文标题】在 Hive 中如何从特定字符开始获取结果【英文标题】:In Hive how to get result starting from particular character 【发布时间】:2017-07-01 16:18:03 【问题描述】:

我正在学习 Hive。假设我有如下表格,

t1


id  name 
 1   ram
 2   rahim 
 3   yesudas
 4   george 
 5   yogesh

现在我将在 sql 中编写,

select name
from t1
where name like 'r%' 

这只会给出从 r 开始的名称结果,

id  name 
 1   ram
 2   rahim

如何在 Hive 中实现这一点。请帮助

【问题讨论】:

几乎相同的查询。只有你会引用你的 Hive 表。 请不要将 solved 附加到您的标题中。取而代之的是接​​受一个答案,该答案将告诉其他人问题现已解决。谢谢。 好的,请告诉我如何接受答案,我刚刚开始使用堆栈溢出。 【参考方案1】:

表创建:

create table t1 (id int,name string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;

查询:

select * from t1 where name like 'r%';

输出:

   1 ram
   2 rahim

【讨论】:

【参考方案2】:

您可以运行相同的查询。

蜂巢>

 CREATE TABLE t1(
 id int, 
 name string)
 ROW FORMAT DELIMITED 
 FIELDS TERMINATED BY ',' 
 LINES TERMINATED BY '\n';

好的 耗时:0.625 秒

hive> load data local inpath '/home/amit/data.txt' into table t1;

将数据加载到表 eis_app.t1 表 eis_app.t1 统计信息:[numFiles=1,totalSize=44] 好的 耗时:1.22 秒

    hive> select * from t1;

OK
1   ram
2   rahim 
3   yesudas
4   george 
5   yogesh
Time taken: 0.098 seconds, Fetched: 5 row(s)

hive> select * from t1 where name like 'r%';

    OK
    1   ram
    2   rahim 
    Time taken: 0.107 seconds, Fetched: 2 row(s)
    hive> 

【讨论】:

亲爱的 Gordon,Amit 谢谢你的完美回答。我的问题已经解决了。

以上是关于在 Hive 中如何从特定字符开始获取结果的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Hive 盒对象中获取密钥并将其映射到对象的特定字段?

python如何获取txt文件一行中特定字符前或后的所有字符

如何从 json 数组中获取 hive 中的字符串列表

Java:从特定字符后开始的字符串中获取子字符串

如何根据字符获取子字符串并从右侧开始读取字符串

如何在 hive 中进行字符串连接