我需要帮助。我正在使用python代码从网页下载一个文件,并将其放置在本地文件系统中,然后使用put命令将其传输到hdfs中,然后对其执行操作。
但在某些情况下,文件大小可能非常大,下载到本地文件系统是不正确的。所以我希望文件直接下载到hdfs中,而不需要使用本地文件系统。
有谁能给我建议一些方法哪一种是最好的方法?如果我的问题有任何错误,请纠正我。谢谢您。
我需要帮助。我正在使用python代码从网页下载一个文件,并将其放置在本地文件系统中,然后使用put命令将其传输到hdfs中,然后对其执行操作。
但在某些情况下,文件大小可能非常大,下载到本地文件系统是不正确的。所以我希望文件直接下载到hdfs中,而不需要使用本地文件系统。
有谁能给我建议一些方法哪一种是最好的方法?如果我的问题有任何错误,请纠正我。谢谢您。
1条答案
按热度按时间q5iwbnjs1#
您可以通过管道直接从下载中下载,以避免将其写入磁盘,例如:
这个
-
参数到-put
告诉它从stdin读取(参见文档)。不过,这仍然会通过本地计算机路由下载,而不是通过本地文件系统。如果您想下载文件而不使用本地计算机,则可以编写一个任务接受的仅Mapmapreduce作业(例如,包含要下载的文件列表的输入文件),然后下载这些文件并输出结果。请注意,这将要求您的集群具有对internet的开放访问,这通常是不可取的。