You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Glue无法分类我的数据,附相关HTML文件结构求助

解决AWS Glue无法分类HTML内嵌预格式化数据的方案

我来帮你搞定这个问题!你的核心痛点是:AWS Glue默认的HTML分类器只会解析HTML标签结构,根本不会去提取<pre>标签里的业务数据——而你真正要处理的恰恰是<pre>里那串固定格式的日志内容。下面给你两种实用的解决思路,按需选择:

1. 用Glue ETL脚本直接处理(最灵活)

先把HTML内容读成字符串,手动提取<pre>里的内容,再拆分结构化字段:

第一步:提取<pre>内的原始数据

写个简单的UDF函数,用正则把<pre>和</pre>之间的内容抠出来:

import re
from pyspark.sql.types import StringType
from pyspark.sql.functions import udf, col

def pull_pre_content(html_text):
    # 用DOTALL模式匹配跨行内容
    pre_match = re.search(r'<pre>(.*?)</pre>', html_text, re.DOTALL)
    if pre_match:
        # 去掉首尾的空白字符
        return pre_match.group(1).strip()
    return None

# 注册UDF
extract_pre_udf = udf(pull_pre_content, StringType())

# 读取HTML文件后,新增一列存提取出的pre内容
processed_df = raw_html_df.withColumn('pre_data', extract_pre_udf(col('content')))

这里的content是你读取HTML文件后得到的原始内容列,根据你的实际表结构调整就行。

第二步:拆分结构化字段

看你给出的示例数据14V-IG-TEST-DATA - SERVC - EXEC# 4515 [11| Blubb,abcons, Port: 18 For: ...,是用-、|、逗号这些符号分隔的,直接用Spark的split函数拆就行:

from pyspark.sql.functions import split

# 按" - "拆分前三个字段
final_df = processed_df.withColumn('record_type', split(col('pre_data'), ' - ').getItem(0))
                       .withColumn('service_category', split(col('pre_data'), ' - ').getItem(1))
                       .withColumn('execution_info', split(col('pre_data'), ' - ').getItem(2))
                       # 再拆分exec_info里的细节,比如用"|"拆分
                       .withColumn('exec_id', split(col('execution_info'), '\|').getItem(0))

根据你实际的字段规则调整拆分逻辑就行,要是格式有变体,也可以用更灵活的正则拆分。

2. 用Glue爬虫的自定义分类器(适合自动建表)

如果是用Glue爬虫自动发现表结构,那你可以创建一个自定义正则分类器,直接跳过HTML标签,匹配<pre>里的行格式:

  • 先写个匹配你数据行的正则,比如针对你的示例开头:
    ^\w+-IG-TEST-DATA - \w+ - EXEC# \d+ \[\d+\| .*
    
  • 去Glue控制台的「分类器」页面,新建一个正则分类器,把这个正则填进去,设置优先级高于默认的HTML分类器;
  • 下次爬虫运行时,就会优先用这个分类器识别<pre>里的行数据,自动生成对应的表结构。

几个注意点

  • 确保你的HTML文件里<pre>标签是标准格式,没有嵌套或者异常闭合的情况,不然正则提取会出错;
  • 先拿几个样本文件测试你的提取和拆分逻辑,没问题再批量跑;
  • 如果数据有多种格式变体,可能需要多个自定义分类器,或者在ETL里加分支判断处理。

内容的提问来源于stack exchange,提问作者S. Read

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:20:40