在火花分析之前从FTP读取大文本文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在火花分析之前从FTP读取大文本文件相关的知识,希望对你有一定的参考价值。

我在独立模式下运行spark(将来会分发一个愿景)进入我的系统,分析一个超过5 GB的超大文件。首先,我需要将此文件从FTP复制到我的本地e.g c:sparkanalysisigfile.txt,然后我将能够加载带有spark的文件进行分析。

我的问题是如何在不丢失内存的情况下有效地复制这样一个大文件?有可能在火花中做到吗?我应该使用像kafka这样的流媒体库吗?

完成火花分析后,我需要将一个大文件写入ftp服务器。

答案

您可以使用Bluezone或连接终端仿真器的任何其他边缘节点使用简单的shell命令:

cat bigfile.txt | ssh yourUserName@yourServer 'hdfs dfs -put - /pathTo/hdfs'

虽然它会慢一点,但它适用于300GB文件。

注意:我这样做是因为我的文件位于未安装Hadoop的服务器中。如果您的服务器安装了Hadoop,那么您可以尝试使用hdfs dfs -put

另一答案

通过stdin管道:

大段引用

wget ftp://user:password@ftpserver/your_file | hadoop fs -put - path_in_hdfs

大段引用

单一 - 告诉HDFS从stdin读取。

以上是关于在火花分析之前从FTP读取大文本文件的主要内容,如果未能解决你的问题,请参考以下文章

无法从本地文件路径读取文本文件 - Spark CSV 阅读器

如何使用火花流检查 rdd 是不是为空?

java FTP下载文件在代码中如何实现知道下载完成?

有没有办法修改此代码以让火花流从 json 中读取?

如何提高java读取大文本文件的效率

火花笛卡尔积