【问题标题】:How to use Jupyter + SparkR and custom R install如何使用 Jupyter + SparkR 和自定义 R 安装
【发布时间】:2017-09-18 18:33:56
【问题描述】:

我正在使用 Dockerized 映像和 Jupyter 笔记本以及 SparkR 内核。当我创建 SparkR 笔记本时,它使用 Microsoft R (3.3.2) 安装而不是 vanilla CRAN R 安装 (3.2.3)。

我使用的 Docker 映像安装了一些自定义 R 库和 Python 软件包,但我没有明确安装 Microsoft R。无论我是否可以删除 Microsoft R 或并排使用它,如何让我的 SparkR 内核使用自定义安装的 R

提前致谢

【问题讨论】:

  • 我的解决方案有效吗?

标签: r jupyter sparkr


【解决方案1】:

除了与 Docker 相关的问题,Jupyter 内核的设置在名为 kernel.json 的文件中配置,位于特定目录(每个内核一个)中,可以使用命令 jupyter kernelspec list 查看;例如,这是我的(Linux)机器中的情况:

$ jupyter kernelspec list
Available kernels:
  python2       /usr/lib/python2.7/site-packages/ipykernel/resources
  caffe         /usr/local/share/jupyter/kernels/caffe
  ir            /usr/local/share/jupyter/kernels/ir
  pyspark       /usr/local/share/jupyter/kernels/pyspark
  pyspark2      /usr/local/share/jupyter/kernels/pyspark2
  tensorflow    /usr/local/share/jupyter/kernels/tensorflow

再次作为示例,这里是我的 R 内核 (ir) 的 kernel.json 的内容

{
  "argv": ["/usr/lib64/R/bin/R", "--slave", "-e", "IRkernel::main()", "--args", "{connection_file}"],
  "display_name": "R 3.3.2",
  "language": "R"
}

这是我的pyspark2 内核的相应文件:

{
 "display_name": "PySpark (Spark 2.0)",
 "language": "python",
 "argv": [
  "/opt/intel/intelpython27/bin/python2",
  "-m",
  "ipykernel",
  "-f",
  "{connection_file}"
 ],
 "env": {
  "SPARK_HOME": "/home/ctsats/spark-2.0.0-bin-hadoop2.6",
  "PYTHONPATH": "/home/ctsats/spark-2.0.0-bin-hadoop2.6/python:/home/ctsats/spark-2.0.0-bin-hadoop2.6/python/lib/py4j-0.10.1-src.zip",
  "PYTHONSTARTUP": "/home/ctsats/spark-2.0.0-bin-hadoop2.6/python/pyspark/shell.py",
  "PYSPARK_PYTHON": "/opt/intel/intelpython27/bin/python2"
 }
}

如您所见,在这两种情况下,argv 的第一个元素都是相应语言的可执行文件——在我的例子中,GNU R 用于我的ir 内核,而 Intel Python 2.7 用于我的pyspark2 内核。更改它,使其指向您的 GNU R 可执行文件,应该可以解决您的问题。

【讨论】:

  • 太棒了!!谢谢!
  • 是的,看来我是唯一的赞成票?。但我喜欢关注质量而不是数量。
  • 很好的工作解释了细节。
【解决方案2】:

要使用自定义 R 环境,我认为您需要在启动 Spark 时设置以下应用程序属性:

    "spark.r.command": "/custom/path/bin/R",
    "spark.r.driver.command": "/custom/path/bin/Rscript",
    "spark.r.shell.command" : "/custom/path/bin/R"

这里有更完整的记录:https://spark.apache.org/docs/latest/configuration.html#sparkr

【讨论】:

    猜你喜欢
    • 2020-07-07
    • 1970-01-01
    • 2016-09-26
    • 2022-01-17
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    相关资源
    最近更新 更多