【发布时间】:2015-02-22 14:13:02
【问题描述】:
我目前正在学习/测试 Hive,但似乎无法找到适合此问题的解决方案: 我有如下所示的日志文件:
IP, Date, Time, URL, Useragent
我目前在包含这些列的表中。这些列由 '\t' 分隔,但已为 URL 提供了一些特定的客户端信息,看起来有点像这样:
example.org/log.gif?userID=xxx&sex=m&age=y&subscriber=y&lastlogin=ddd
我想用这些给定的值对创建一个新表:userID, sex, age, subscriber, lastlogin 另一个问题是值对并不总是完整的,或者有些缺失。像这样:
example.org/log.gif?userID=xxx&sex=m&age=y&subscriber=y&lastlogin=ddd
example.org/log.gif?userID=xxx&sex=m&age=y&lastlogin=
这使得 Hive 的 ... format delimited fields terminated by '&'; afaik 在这种情况下毫无用处,因为它会导致列中的值错误。
有没有办法在 Hive 中使用 SQL 和正则表达式解决这个问题?
【问题讨论】:
标签: mysql sql regex hadoop hive