如何在将文件提供给 HDFS 之前连接我的文件?

Posted

技术标签:

【中文标题】如何在将文件提供给 HDFS 之前连接我的文件?【英文标题】:How to concatenate my files before feeding it to HDFS? 【发布时间】:2014-02-04 09:35:08 【问题描述】:

我有三个文件,每个文件的第一列作为每笔交易的序列号。我想要做的就是连接这些文件,但我需要在连接之前更改其他文件中的序列号,但问题是文件太大,无法编写程序通过更改序列号来连接这些文件。连接后,我想将此数据提供给我的 Hadoop 集群。任何帮助都会很棒。提前致谢。

【问题讨论】:

【参考方案1】:

使用 MapReduce 更改序列号名称并使用一个 reducer 将所有内容输出到同一个文件。但是,您将了解如何识别不同的文件。

【讨论】:

【参考方案2】:

如果您的源操作系统是 Linux,您可以尝试使用子 shell 中的流编辑器来更改序列号并将其通过管道传输到 hdfs,例如:

(sed 's/^/1/' ./file1; sed 's/^/2/' ./file2; sed 's/^/3/' ./file3) | 
hadoop fs -put - hdfs://namenode/hadoopfile 

【讨论】:

以上是关于如何在将文件提供给 HDFS 之前连接我的文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在将图像提供给 CoreML 模型之前对其进行预处理?

如何在将文件包含在 PHP 中之前安全地评估文件的内容

如何在将上传的文件保存到目录之前重命名?

如何在将文件复制到网络位置的批处理脚本中提供凭据?

HDFS 核心原理

HDFS 核心原理