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
SparkR无法访问workers中的文件_R_Apache Spark_Sparkr - Fatal编程技术网

SparkR无法访问workers中的文件

SparkR无法访问workers中的文件,r,apache-spark,sparkr,R,Apache Spark,Sparkr,这个问题与(但在R中)基本相同 我正在开发一个使用SparkR的R包。我使用testthat包在PkgName/inst/tests/test中创建了一些单元测试(几个.R文件)。对于其中一个测试,我需要读取一个外部数据文件,因为它很小并且只在测试中使用,所以我读取到它可以放在测试的同一个文件夹中 当我在一个独立的Spark集群中使用Maven部署它时,使用“local[*]”作为主节点,它可以工作。但是,如果我尝试使用“远程”Spark群集(通过docker-图像中有java、Spark 1.

这个问题与(但在R中)基本相同

我正在开发一个使用SparkR的R包。我使用
testthat
包在PkgName/inst/tests/test中创建了一些单元测试(几个.R文件)。对于其中一个测试,我需要读取一个外部数据文件,因为它很小并且只在测试中使用,所以我读取到它可以放在测试的同一个文件夹中

当我在一个独立的Spark集群中使用Maven部署它时,使用“local[*]”作为主节点,它可以工作。但是,如果我尝试使用“远程”Spark群集(通过docker-图像中有java、Spark 1.5.2和R-我在其中创建了一个主节点,例如
http://172.17.0.1
然后是成功链接到该主节点的辅助节点),则该节点不起作用。它抱怨说找不到数据文件,因为它似乎在使用仅在我的本地pc中有效但在workers中无效的绝对路径查找数据文件。如果我只使用文件名(没有前面的路径),也会发生同样的情况

我还尝试使用--file参数将文件传递给工人,以spark submit,文件成功传递(显然它被放置在
http://192.168.0.160:44977/files/myfile.dat
尽管端口会随着每次执行而变化)。如果我尝试使用SparkFiles.get检索文件的位置,我会得到一个路径(在一个中间文件夹中有一些随机数),但显然,它仍然引用本地计算机中的路径。如果我尝试使用检索到的路径读取文件,它会抛出相同的错误(找不到文件)

我设置了如下环境变量:

SPARK_PACKAGES = "com.databricks:spark-csv_2.10:1.3.0"
SPARKR_SUBMIT_ARGS = " --jars /path/to/extra/jars --files /local/path/to/mydata.dat sparkr-shell"
SPARK_MASTER_IP = "spark://172.17.0.1:7077"
信息信息显示:

INFO-Utils:Copying/local/path/to/mydata.dat to/tmp/spark-c86739c6-2c73-468f-8326-f3d03f5abd6b/userFiles-e1e77e47-2689-4882-b60f-327cf99fe5e0/mydata.dat
INFO SparkContext:已添加文件:/local/path/to/mydata.dat,位于http://192.168.0.160:47110/files/mydata.dat 时间戳为1458995156845

此端口从一个运行更改为另一个运行。在R内部,我尝试过:


fullpath如果您向我们展示您的代码会更容易。我这里没有太多的代码,而是关于如何连接和配置的问题。无论如何,我复制了一些东西,以使我的观点更清楚。