如何将Hive架构应用于非结构化文本?

时间:2015-10-23 20:05:03

标签: parsing hadoop hive

我有一个空格分隔的文本文件,代表一些日志数据。为简单起见,标题将是: 'date','time','query','host'

记录如下:

2001-01-01 01:02:04 irfjrifjWt.f=32&ydeyf myhost

带有空格分隔字段的简单Hive表将正确读取此数据。但是我想进一步解析查询字符串。 在此文本中是我要解析为Hive列的标记。 以下是几个查询字符串的去标识示例:

ofifnmfiWT.s=12&ifmrinfnWT.df=hello’&oirjfirngirngWT.gh=32&iurenfur
ggfWT.gh=12&WT.ll=12&uyfer3d

标签的格式为WT.xx,后跟一个=,后跟标签的值,后跟一个&amp ;. 标签的顺序和每个标签的存在因记录而异。我前面唯一可以定义的是一组我要解析的标签。在上面的例子中,假设我对标签[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和正则表达式轻松解析查询字符串,只需使用原始记录创建第二个.txt文件,再添加一系列带解析标记的新值,但这似乎是浪费时间而且不会看起来它在阅读原则上使用模式。 我的想法可能是错的,因为我是新手,但我想知道是否有办法在这些数据上应用一个本身就可以解析的数据。 如果没有,你会推荐什么解决方案?

0 个答案:

没有答案