我正在尝试在 pyspark 中执行 .leftOuterJoin。我正在使用 EC2、Anaconda、iPython 笔记本、交互模式和 Spark 1.3.0。
当我运行以下代码时:
success_rdd = keyedtrips_rdd.leftOuterJoin(success_rdd)
success_rdd = success_rdd.persist(StorageLevel.MEMORY_AND_DISK)
some_successes = success_rdd.take(100)
Spark 完成该过程大约一半,然后失败并显示以下消息:
Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.runJob.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 1361 in stage 16.0 failed 4 times, most recent failure: Lost task 1361.3 in stage 16.0 (TID 10438, ip-172-31-43-119.eu-west-1.compute.internal): java.io.IOException: Failed to create local dir in /mnt2/spark/spark-58043a43-5bfc-4610-a6bf-faae43b5ea5d/spark-c31061af-7fc0-45ab-b2ab-8f008005451d/spark-2ca18976-6219-4965-ac3b-aecf2e098cc1/blockmgr-40100c28-6c13-41c9-8617-9dfcf187040c/05.
非常感谢任何帮助,我对此感到很困惑。这个related question可能会谈论同样的问题,但我不明白回应。我过去运行过 leftOuterJoin,但以前从未见过此错误...
最佳答案
确保您的 master 的 SparkConf
将 spark.local.dir
定义为本地可写目录。它必须可由您运行 Spark 的用户写入。
更多信息可以在这里找到:
关于python - Apache PySpark 丢失执行程序 - 无法创建本地目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31104125/