Spark,输入文件的路径

时间:2016-04-05 11:53:59

标签: input apache-spark

我在本地PC上有一个主人,并使用两个服务器作为工作人员。当我启动Spark程序时,首先我必须导入我的输入文件。对于正确的输入(当前),我应该将我的输入文件放在master和两个worker的硬盘上(路径必须相同)。这意味着相同的数据集应该放在三个不同的地方。如何避免这种情况并将我的数据集存储在唯一的位置,而不会出现输入错误?

1 个答案:

答案 0 :(得分:1)

为此,您需要使用分布式文件系统,如HDFS(Hadoop)。阅读文件的两个例子如下:

tweets = sc.textFile("hdfs://scrapper.ccs.neu.edu/user/cbw/a1_tweets.txt") # load data from HDFS

words = sc.textFile("hdfs://scrapper.ccs.neu.edu/user/cbw/words*.txt") # load data from HDFS

第一个是传统的文件读取,而第二个是*会导致读取多个文件(就像整个文本文件一样)。

请注意,在HDFS中引用文件时,必须指定包含主机名的完全限定URL(例如,剪贴板)。

HDFS中的数据存储在块中并存储在所有数据节点中。有关此文件系统的元数据存储在Namenode上。因此,您将把数据分布在不同的节点中,并且hadoop负责处理节点之间何时以及如何发送块。