我目前正在学习"来回"与Hadoop合作。
是当前设置:我使用顺序代码创建.txt文件,我将用它作为我的映射器的输入数据。我目前一直在运行这个顺序代码" preprocess.py"在本地计算机上然后将生成的文件移动到hdfs,但是生成了许多文件,并且移动所需的时间比它们生成的要多得多。
我想知道是否复制了" preprocess.py"代码到hdfs,有任何方法可以在那里运行它,允许在hdfs上创建生成的文件而不需要移动。
使用
"hdfs dfs -python preprocess.py"
返回"未知命令"错误,这样显然是行不通的。谢谢你的时间!
答案 0 :(得分:0)
有可能。只需确保将所有生成的文件推送到python代码中的单个unix位置。一旦它们在那里,您可以使用subprocess
模块运行以将生成的文件转移到HDFS。在代码中,它必须等到文件传输。另外,为确保不再复制同一文件,请考虑以不同方式命名文件(尝试这样会产生Hadoop错误)并在HDFS传输成功后删除该文件。