提取hive中的数据

Posted

技术标签:

【中文标题】提取hive中的数据【英文标题】:extract data in hive 【发布时间】:2017-11-21 12:00:25 【问题描述】:

我在配置单元表列中有如下数据:

customer reason=Other#customer reason free text=Space#customer type=Regular#customer end date=2020-12-31 19:50:00#customer offering criterion=0#customer type=KK#Customer factor=0.00#customer period=0#customer type=TN#customer value=0#customer plan type=M#cttype type=KK#

我想根据客户价值提取数据值 0。

我尝试了下面的查询,但它给出了完整的“客户价值=0”,但我只想要 0。 请提出建议。

select regexp_replace(regexp_extract(information,'customer period=[^#]*',0),'customer period=','') from detail;

【问题讨论】:

数据有点难理解,因为这不是很常见的格式。独立行应该用“#”分隔吗?数据在字段方面是异构的吗? 【参考方案1】:

这个问题根本不清楚。 如果要限制输出,请使用 LIMIT 1(其中 1 是要限制的行数)

【讨论】:

【参考方案2】:

请试一试,

---建表----

创建表ch7(custdetails map string,string>)

行格式分隔

以“#”终止的集合项

以 '=' 结尾的映射键;

----数据加载----

加载数据本地路径'your-file-location-in-local'覆盖到表ch7中;

----数据选择-----

select custdetails["customer value"] from ch7;

希望这会有所帮助!

【讨论】:

以上是关于提取hive中的数据的主要内容,如果未能解决你的问题,请参考以下文章

hive中的字符串提取

Hive2.1.1的安装

通过pyspark更新hive中的插入数据

Hive--简介

从 HBase 中提取数据的最快方法是啥

Hive 优化详解