gpt4 book ai didi

Hadoop FileUtil copymerge - 忽略 header

转载 作者:可可西里 更新时间:2023-11-01 16:37:57 24 4
gpt4 key购买 nike

从 spark 写入 HDFS 时,根据 header 设置,每个文件都有一个 header 。因此,当在 FileUtil 中调用 copymerge 时,我们会在合并文件中得到重复的 header 。有没有办法保留第一个文件的标题并忽略其他文件。

最佳答案

如果您打算将其合并为一个文件,然后将其提取到您的本地文件系统,您可以使用 getmerge .

getmerge

Usage: hadoop fs -getmerge [-nl] <src> <localdst>

Takes a source directory and a destination file as input and concatenates files in src into the destination local file. Optionally -nl can be set to enable adding a newline character (LF) at the end of each file. -skip-empty-file can be used to avoid unwanted newline characters in case of empty files.

现在要删除 header ,您应该了解 header 的外观。

假设您的标题看起来像:

HDR20171227

您可以使用:

sed -i '1,${/^HDR/d}' "${final_filename}"

哪里final_filename是本地文件系统上的文件名。

这将删除所有以 HDR 开头的行在您的文件中并出现在第一行之后。

如果您不确定 header ,您可以先将其存储在一个变量中使用

header=$(head -1 "${final_filename}" )

然后使用 sed 继续删除它.

关于Hadoop FileUtil copymerge - 忽略 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47979954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com