我正在(许多)linux服务器上部署javajar。
(与此问题相关:如何在sc.textfile中加载本地文件,而不是hdfs)
在javajar文件中,我有一个类试图从hdfs或文件夹上的本地文件夹中读取文件。
实施原则如下:
如果在服务器(或任何其他服务器,hdfs路径是一个输入)上设置了hdfs环境,spark将读取hdfs系统上的特定文件夹
但是,如果没有设置hdfs环境,spark将读取服务器上本地目录中的文件。
伪代码是这样的
check whether HDFS environment exist, set exist_id = 1 if yes, otherwise exist_id = 0
if (exist_id)
try
javaRDD = spark.textFile(InpuPathToFileFolder); // read from HDFS
except:
exist_id = 0
if (exist_id == 0)
javaRDD = spark.textFile("file:///" + InpuPathToFileFolder); // read from local directory
这个 InpuPathToFileFolder
将是hdfs上的文件夹(如果hdfs存在),否则是本地目录(如果hdfs不存在)。我们事先不知道。如何通过java代码检查服务器上是否存在hdfs?
我不喜欢直接使用下面的代码,因为如果hdfs不存在或无法连接,那么在 try
部分。
try
javaRDD = spark.textFile(InpuPathToFileFolder); // read from HDFS
except:
javaRDD = spark.textFile("file:///" + InpuPathToFileFolder); // read from local directory
暂无答案!
目前还没有任何答案,快来回答吧!