我有一个空格分隔的文本文件,代表一些日志数据。为简单起见,标题应为:“date”、“time”、“query”、“host”
一张唱片看起来像:
2001-01-01 01:02:04 irfjrifjWt.f=32&ydeyf myhost
带有空格分隔字段的简单配置单元表将正确读取此数据。不过,我想对查询字符串做进一步的解析。在这个文本中是我想要解析为配置单元列的标记。下面是几个查询字符串的取消标识示例:
ofifnmfiWT.s=12&ifmrinfnWT.df=hello’&oirjfirngirngWT.gh=32&iurenfur
ggfWT.gh=12&WT.ll=12&uyfer3d
标记的格式为wt.xx,后跟一个=,后跟标记的值,后跟一个&。标签的顺序和每个标签的出现因记录而异。我只能提前定义一组要解析的标记。在上面的例子中,假设我对标签[wt.gh,wt.s]感兴趣。然后(确定日期时间和主机),我的Hive表将如下所示:
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文件,再加上一系列新的值和解析后的标记,但这似乎是浪费时间,而且看起来不像是在利用模式读取原理。我的想法可能是错误的,因为我是新来的,但是我想知道是否有一种方法可以在这个数据上应用一个模式,这样就可以为我进行解析。如果没有,你会推荐什么解决方案?
暂无答案!
目前还没有任何答案,快来回答吧!