amazon-web-services - Glue Classifier 无法使用 Grok 模式对列进行分类
问题描述
我有一个使用 format 构建的 s3 存储桶s3://<bucket-name>/year=<yearno>/month=<monthno>/day=<dayno>/<filename>.log
。我得到的 .log 文件中的行结构如下:
2020-01-06 09:05:14,450 INFO [Asterisk-Java DaemonPool-1-thread-3] handler.CallHandler (CallHandler.java:849) - Original name : harris changed to : haris . Exist? true
虽然我用于分类器的 Grok 模式是:
[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9:,]{12} INFO \[Asterisk-Java DaemonPool-1-thread-[0-9]{1,3}] handler.CallHandler \(CallHandler.java:849\) - Original name : %{WORD:original_name} changed to : %{WORD:transformed_name} . Exist\? %{WORD:exist_prior}
我使用这个调试器网络应用程序检查了我的 Grok 模式,并确认它是正确的。我期望结果表是:
+------+-------+-----+---------------+------------------+--------------+
| year | month | day | original_name | transformed_name | exists_prior |
+------+-------+-----+---------------+------------------+--------------+
| - | - | - | - | - | - |
+------+-------+-----+---------------+------------------+--------------+
但是,我得到的表是:
+------+-------+-----+------+------+------+------+
| year | month | day | col0 | col1 | col2 | col3 |
+------+-------+-----+------+------+------+------+
| - | - | - | - | - | - | - |
+------+-------+-----+------+------+------+------+
我哪里做错了?
解决方案
我将捕获正则表达式从更改%{WORD:variable_name}
为%{DATA:variable_name}
. 然后它按预期工作。
推荐阅读
- opencv - OpenCV.js - 遍历轮廓层次结构
- c# - 如何绑定值以形成控件
- python - Pandas:比较系列中的列表对象
- java - JSP 页面无法从资源文件夹-IntelliJ 中获取引导文件
- mongodb - 使用 MongoDB 从 Golang 中的子对象数组中获取值
- jquery - 如何在引导模式打开中添加类
- javascript - Angular - ViewChild(Directive) 在指令中返回未定义
- java - tomcat 9 的 SSL 混合身份验证
- excel - Excel VBA - 将单元格的内容添加到文件名的第一个空格中
- node.js - 从 Node.js 连接 sqlite3