首页 > 解决方案 > 在 python 中写入输出文件时分离要使用的标头 - apache beam

问题描述

有没有办法将标题与文件分开(例如放入列表中)并仅转换数据?

我看到参数skip_header_lines,但我需要在完成过程后将标题加载到输出文件中。

我正在尝试将标头与巨大的文件(csv)分开,但我还没有找到解决方案。

例如,文件:

a, b, c
2, 3, 4
2, 4, 5

如何将文件转换为:

a, b, c, date_insered_static
2, 3, 4, 2021/10/10
2, 4, 5, 2021/10/10

我对整个文件进行了转换以插入日期,但我没有找到获取第一行并插入名称“date_insered_static”的方法

我一直在考虑先“转换”标题(以避免每一行都执行标题的功能),然后启动管道来转换数据,有些像这样:

"read_header" >> some_function_to_read_first_line()
file_to_load = (
      "read">> ReadFromText(file)
      "transform" >> beam.Map(some_tranformation)
      "output" >> WriteToText(file)

这些文件很大,标题也不同,我尽量避免直接使用打开的文件或使用 pandas,因为我相信处理这些巨大的文件需要更长的时间!我只想用 apache Beam,如果可能的话!

标签: pythonapache-beamdataflow

解决方案


推荐阅读