我正在 Google Dataproc 集群上开发 Jupyter Notebook。当您使用笔记本时,它会给出每个单元执行的输出。
我必须在集群上提交 PySpark 作业。该作业采用 .py 文件作为输入。下面附上截图
当我输入 .ipynb 文件的路径时,出现以下错误。
Exception in thread "main" org.apache.spark.SparkException: Cannot load main class from JAR file:/tmp/job-e4811479-cell2cell1/Customer_Churn_(Cell2Cell)_Parallel.ipynb at org.apache.spark.deploy.SparkSubmitArguments.error(SparkSubmitArguments.scala:657) at org.apache.spark.deploy.SparkSubmitArguments.loadEnvironmentArguments(SparkSubmitArguments.scala:221) at org.apache.spark.deploy.SparkSubmitArguments.(SparkSubmitArguments.scala:116) at org.apache.spark.deploy.SparkSubmit$$anon$2$$anon$3.(SparkSubmit.scala:907) at org.apache.spark.deploy.SparkSubmit$$anon$2.parseArguments(SparkSubmit.scala:907) at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:81) at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:920) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:929) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
我假设我们只能将 .py 文件作为集群上的作业提交。由于代码的性质,将 .ipynb 转换为 .py 对我来说也是不可行的。我想要每个单元格的输出。
有什么方法可以在集群上提交 .ipynb 文件吗?或者我是否需要制作一个 .py 文件来实现此目的?
感谢任何帮助。 谢谢。
最佳答案
您无法通过 Spark 提交笔记本文件,即 ipynb。
您应该将其转换为 py 文件,然后将其提交到 Spark Dataproc 集群上。
spark Submit 的输出可以将多个输出写入 GCS,但只会返回一个输出。
因此,您可以在 GCS 上为每个输出创建一个对象,并将结果包含在存储桶中。
关于jupyter-notebook - 有没有办法在集群上为 .ipynb 文件提交 Google Dataproc PySpark 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62236180/