【问题标题】:How to parse a string from the input file name in streamsets如何从流集中的输入文件名解析字符串
【发布时间】:2022-01-13 00:40:41
【问题描述】:

我需要从输入文件中提取一个字符串并将其作为字段添加到记录中。

例如,如果我的文件的文件名中有日期,则只需提取日期并将其添加为记录中的附加列。如果文件名是xyzYYYMMDD.txt,则只提取YYYYMMDD

【问题讨论】:

标签: string parsing input streamsets


【解决方案1】:

我能够做到这一点。假设您正在谈论 Streamsets Datacollector。其余的将是实用的解析您的字符串以在 Jython Evaluator 中获取文件字符串的特定部分。

设置管道: (目录来源)->(表达式评估器)->(Jython 评估器)->(垃圾)

==== 配置:

目录来源:

File Name Pattern: ddsample_*
First File to Process: ddsample_20211203

表达式评估器:

Field Expressions
Output Field: /filename_from_header
Field Expression: ${record:attribute('filename')}

Jython 评估器:脚本

for record in sdc.records:
  try:
    txt=record.value['filename_from_header']
    record.value['filename_from_header'] = txt[9:]
    sdc.output.write(record)
  except Exception as e:
    sdc.error.write(record, str(e))

然后点击 Preview 并点击 Jython evaluator:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 2013-06-21
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多