gpt4 book ai didi

r - 如何使用 spark_apply_bundle

转载 作者:行者123 更新时间:2023-12-02 01:02:27 27 4
gpt4 key购买 nike

我正在尝试使用 spark_apply_bundle 来限制传输到 YARN 托管集群上工作节点的 packages/data 的数量。如 here 中所述我必须将 tarball 的路径作为 packages 参数传递给 spark_apply 并且我还必须通过 "sparklyr.shell.files" 使其可用在 Spark 配置中。

我的问题是:

  • tarball 的路径是否可以相对于项目的工作目录,如果不是,那么它应该存储在 hdfs 还是其他地方?
  • 应该将什么传递给 "sparklyr.shell.files"?它是否与传递给 spark_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)

最佳答案

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

更新后的脚本如下所示:

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)

关于r - 如何使用 spark_apply_bundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49717181/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com