Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark spark saveAsTextFile方法在JavaAPI中非常奇怪,;它只是在我的程序中不起作用_Apache Spark_Rdd - Fatal编程技术网

Apache spark spark saveAsTextFile方法在JavaAPI中非常奇怪,;它只是在我的程序中不起作用

Apache spark spark saveAsTextFile方法在JavaAPI中非常奇怪,;它只是在我的程序中不起作用,apache-spark,rdd,Apache Spark,Rdd,我是spark新手,在运行测试程序时遇到了这个问题。我在linux服务器上安装spark,它只有一个主节点和一个工作节点。然后我在笔记本电脑上编写测试程序,代码如下: `JavaSparkContext ct= new JavaSparkContext ("spark://192.168.90.74:7077","test","/home/webuser/spark/spark-1.5.2-bin-hadoop2.4",new String[0]); ct.addJar("/h

我是spark新手,在运行测试程序时遇到了这个问题。我在linux服务器上安装spark,它只有一个主节点和一个工作节点。然后我在笔记本电脑上编写测试程序,代码如下:

     `JavaSparkContext ct= new JavaSparkContext ("spark://192.168.90.74:7077","test","/home/webuser/spark/spark-1.5.2-bin-hadoop2.4",new String[0]);
    ct.addJar("/home/webuser/java.spark.test-0.0.1-SNAPSHOT-jar-with-dependencies.jar");
    List list=new ArrayList();
    list.add(1);
    list.add(6);
    list.add(9);
    JavaRDD<String> rdd=ct.parallelize(list);
    System.out.println(rdd.collect());
    rdd.saveAsTextFile("/home/webuser/temp");
    ct.close();`
`JavaSparkContext ct=newjavasparkcontext('spark://192.168.90.74:7077“,”测试“,”/home/webuser/spark/spark-1.5.2-bin-hadoop2.4”,新字符串[0]);
ct.addJar(“/home/webuser/java.spark.test-0.0.1-SNAPSHOT-jar-with-dependencies.jar”);
列表=新的ArrayList();
增加第(1)款;
增加(6);
增加(9);
JavaRDD=ct.parallelize(列表);
System.out.println(rdd.collect());
saveAsTextFile(“/home/webuser/temp”);
ct.close()`
我想我可以在我的服务器上获得/home/webuser/temp,但实际上这个程序在我的笔记本电脑上创建了c://home/webuser/temp,我不明白,它的操作系统是win8,
saveAsTextFile()不应该在spark的工作节点上运行吗?为什么它只在我的笔记本电脑上运行,我想这是sprak的驱动程序。

这取决于spark安装的默认文件系统。根据您所说的,您的默认文件系统是
file://
,这是默认文件系统。为了改变这一点,您需要修改Hadoop配置的
core site.xml
中的
fs.defaultFS
属性。否则,您只需更改代码并在代码中指定文件系统URL,即:

rdd.saveAsTextFile("hdfs://192.168.90.74/home/webuser/temp");

如果
192.168.90.74
是您的Namenode。

谢谢您的回复。事实上,我只想通过将rdd保存到本地文件而不是hdfs来测试我的程序。我在笔记本电脑上运行我的程序,spark安装在我的服务器上,ip为“192.168.90.74”,它既是主节点又是工作节点。我想知道为什么这个程序在我的笔记本电脑上的目录“/home/webuser/temp”中创建本地文件,而不是在服务器上?saveAsTextFile方法应该在工作节点上运行并创建文件,不是吗?我对spark编程是新手,不知道我是否清楚,感谢您的帮助它是在本地计算机上创建的,因为文件系统是
文件://
,并且驱动程序在本地计算机上运行。如果要将其存储在服务器本地文件系统上,请使用
file://192.168.90.74/...
。顺便说一句,我没有使用spark submit来运行此程序。我在IDE中以应用程序的形式运行它。我不打算使用spark submit来运行我的应用程序,所以我用这种方式测试它。