Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
如何使用spark_apply_bundle_R_Apache Spark_Sparklyr - Fatal编程技术网

如何使用spark_apply_bundle

如何使用spark_apply_bundle,r,apache-spark,sparklyr,R,Apache Spark,Sparklyr,我正在尝试使用spark\u apply\u bundle来限制传输到warn受管群集上工作节点的包/数据的数量。如中所述,我必须将tarball的路径作为packages参数传递给spark\u apply,并且我还必须通过spark配置中的“sparkyr.shell.files”使其可用 我的问题是: tarball的路径是否可以相对于项目的工作目录,如果不是,那么它是否应该存储在hdfs或其他地方 应该将什么传递到“sparklyr.shell.files”?它是传递给spark\u

我正在尝试使用
spark\u apply\u bundle
来限制传输到
warn
受管群集上工作节点的
包/数据的数量。如中所述,我必须将
tarball
的路径作为packages参数传递给
spark\u apply
,并且我还必须通过spark配置中的
“sparkyr.shell.files”
使其可用

我的问题是:

  • tarball的路径是否可以相对于项目的工作目录,如果不是,那么它是否应该存储在hdfs或其他地方
  • 应该将什么传递到
    “sparklyr.shell.files”
    ?它是传递给
    spark\u apply
    的路径的副本吗
当前我的未成功脚本如下所示:

bundle <- paste(getwd(), list.files()[grep("\\.tar$",list.files())][1], sep = "/")

...

config$sparklyr.shell.files <- bundle
sc <- spark_connect(master = "yarn-client", config = config)

...

spark_apply(sdf, f, packages = bundle)

bundle通过将tarball复制到hdfs,spark作业成功。似乎可以使用其他方法(例如,将文件复制到每个工作节点),但这似乎是最简单的解决方案

更新后的脚本如下所示:

bundle <- paste(getwd(), list.files()[grep("\\.tar$",list.files())][1], sep = "/")

...

hdfs_path <- "hdfs://nn.example.com/some/directory/"
hdfs_bundle <- paste0(hdfs_path, basename(bundle))
system(paste("hdfs dfs -put", bundle, hdfs_path))
config$sparklyr.shell.files <- hdfs_bundle
sc <- spark_connect(master = "yarn-client", config = config)

...

spark_apply(sdf, f, packages = bundle)
bundle