我有一个空格分隔的文本文件,代表一些日志数据。为简单起见,标题将是: '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文件,再添加一系列带解析标记的新值,但这似乎是浪费时间而且不会看起来它在阅读原则上使用模式。 我的想法可能是错的,因为我是新手,但我想知道是否有办法在这些数据上应用一个本身就可以解析的数据。 如果没有,你会推荐什么解决方案?