Parsing 如何将配置单元架构应用于非结构化文本?

Parsing 如何将配置单元架构应用于非结构化文本?,parsing,hadoop,hive,Parsing,Hadoop,Hive,我有一个空格分隔的文本文件,表示一些日志数据。为简单起见,标题应为: “日期”、“时间”、“查询”、“主机” 一个记录看起来像: 2001-01-01 01:02:04 irfjrifjWt.f=32&ydeyf myhost Date time host WT.s WT.gh 2011-01-01 05:03:03 myhost1 12 32 2011

我有一个空格分隔的文本文件,表示一些日志数据。为简单起见,标题应为: “日期”、“时间”、“查询”、“主机”

一个记录看起来像:

2001-01-01 01:02:04 irfjrifjWt.f=32&ydeyf myhost
Date                 time         host            WT.s     WT.gh
2011-01-01           05:03:03     myhost1         12       32
2011-01-01           05:03:03     myhost1         NULL     12
带有空格分隔字段的简单配置单元表将正确读取此数据。但是,我想进一步解析查询字符串。 在这个文本中是我想要解析为配置单元列的标记。 以下是两个查询字符串的取消标识示例:

ofifnmfiWT.s=12&ifmrinfnWT.df=hello’&oirjfirngirngWT.gh=32&iurenfur
ggfWT.gh=12&WT.ll=12&uyfer3d
标记的格式为WT.xx,后跟一个=,后跟标记的值,后跟一个&。 标签的顺序和每个标签的存在因记录而异。我唯一能提前定义的就是我想要解析的一组标记。在上面的例子中,假设我对标签[WT.gh,WT.s]感兴趣。然后在确定日期时间和主机后,我的蜂巢表将如下所示:

2001-01-01 01:02:04 irfjrifjWt.f=32&ydeyf myhost
Date                 time         host            WT.s     WT.gh
2011-01-01           05:03:03     myhost1         12       32
2011-01-01           05:03:03     myhost1         NULL     12
我可以很容易地用Python和regex解析查询字符串,只需用原始记录创建第二个.txt文件,再加上一系列带有解析标记的新值,但这似乎是浪费时间,而且看起来不像是在利用基于读取原理的模式。 我的想法可能是错误的,因为我对这方面还不熟悉,但我想知道是否有一种方法可以对这些数据应用模式,从而为我进行固有的解析。
如果没有,您会推荐什么解决方案?

看看这个链接是否有帮助您可以在Hive中使用所谓的SerDe并应用正则表达式来提取所需的字段Ravindra,哪个链接?cricket_007,我认为SerDe用于数据元素序列始终相同的情况。在我描述的情况下,字段不一定按相同的顺序排列,有时甚至不存在。