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

使用jq多条件筛选Hadoop Yarn日志JSON并输出指定字段为CSV格式

实现需求的jq语法

直接使用以下命令即可从合并后的JSON文件中提取符合要求的字段,输出标准CSV格式:

jq -r '
# 过滤所有类型包含TASK的条目
map(select(.type | contains("TASK") | not)) |
# 按规则提取各字段
(
  # 提取AM_STARTED的startTime
  map(select(.type == "AM_STARTED") | .event.AMStarted.startTime)[0],
  # 提取JOB_INITED下所有字段
  map(select(.type == "JOB_INITED") | .event.JobInited | (.launchTime, .totalMaps, .totalReduces))[],
  # 提取JOB_FINISHED的指定字段
  map(select(.type == "JOB_FINISHED") | 
    .event.JobFinished | 
    (
      .finishTime,
      (.totalCounters.groups[] | select(.name == "org.apache.hadoop.mapreduce.FileSystemCounter") | .counts[] | select(.name == "FILE_BYTES_READ").value),
      (.totalCounters.groups[] | select(.name == "org.apache.hadoop.mapreduce.FileSystemCounter") | .counts[] | select(.name == "FILE_BYTES_WRITTEN").value)
    )
  )[]
) | tostring | join(", ")
' 输入文件名.json

可选调整

如果需要为每个字段增加双引号适配更严格的CSV导入规则,把最后一行的tostring | join(", ")替换为:

map("\"\(.)\"") | join(", ")

输出结果完全匹配示例:1636039435822, 1636039438569, 356, 100, 1636043211181, 1156766568459, 1720873364662


内容的提问来源于stack exchange,提问作者d-_-b

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:39:01