【问题标题】:RDD not getting saved as text file in pysparkRDD没有在pyspark中保存为文本文件
【发布时间】:2019-10-26 13:12:05
【问题描述】:

在运行 PySpark 的 AWS EC2 实例上使用以下命令。

final_rdd.coalesce(1).saveAsTextFile('<Location for saving file>')

命令失败并显示以下日志。

[Stage 1:> (0 + 1) / 1]19/06/12 05:08:41 WARN TaskSetManager: Lost task 0.0 in stage 1.0 (TID 7, ip-10-145-62-182.ec2 .internal, executor 2): org.apache.spark.SparkException: 写入行时任务失败 在 org.apache.spark.internal.io.SparkHadoopWriter$.org$apache$spark$internal$io$SparkHadoopWriter$$executeTask(SparkHadoopWriter.scala:155) 在 org.apache.spark.internal.io.SparkHadoopWriter$$anonfun$3.apply(SparkHadoopWriter.scala:83) 在 org.apache.spark.internal.io.SparkHadoopWriter$$anonfun$3.apply(SparkHadoopWriter.scala:78) 在 org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90) 在 org.apache.spark.scheduler.Task.run(Task.scala:121) 在 org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:402) 在 org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360) 在 org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:408) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) 引起:org.apache.spark.api.python.PythonException:回溯(最近一次调用最后): 文件“/mnt/yarn/usercache/hadoop/appcache/application_1556865500911_0446/container_1556865500911_0446_01_000003/pyspark.zip/pyspark/worker.py”,第 262 行,在 main ("%d.%d" % sys.version_info[:2], 版本)) 例外:worker 中的 Python 2.7 版本与驱动程序 3.5 中的版本不同,PySpark 无法使用不同的次要版本运行。请检查环境变量 PYSPARK_PYTHON 和 PYSPARK_DRIVER_PYTHON 是否设置正确。 在 org.apache.spark.api.python.BasePythonRunner$ReaderIterator.handlePythonException(PythonRunner.scala:452) 在 org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:588) 在 org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:571) 在 org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:406) 在 org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37) 在 scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409) 在 scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409) 在 org.apache.spark.internal.io.SparkHadoopWriter$$anonfun$4.apply(SparkHadoopWriter.scala:128) 在 org.apache.spark.internal.io.SparkHadoopWriter$$anonfun$4.apply(SparkHadoopWriter.scala:127) 在 org.apache.spark.util.Utils$.tryWithSafeFinallyAndFailureCallbacks(Utils.scala:1394) 在 org.apache.spark.internal.io.SparkHadoopWriter$.org$apache$spark$internal$io$SparkHadoopWriter$$executeTask(SparkHadoopWriter.scala:139) ... 10 更多

19/06/12 05:08:41 ERROR TaskSetManager: 阶段 1.0 中的任务 0 失败 4 次;中止工作

19/06/12 05:08:41 错误 SparkHadoopWriter:正在中止作业 job_20190612050833_0014。 org.apache.spark.SparkException:作业因阶段失败而中止:阶段 1.0 中的任务 0 失败 4 次,最近一次失败:阶段 1.0 中丢失任务 0.3(TID 10,ip-10-145-62-182.ec2。内部,执行程序 2):org.apache.spark.SparkException:写入行时任务失败 在 org.apache.spark.internal.io.SparkHadoopWriter$.org$apache$spark$internal$io$SparkHadoopWriter$$executeTask(SparkHadoopWriter.scala:155) 在 org.apache.spark.internal.io.SparkHadoopWriter$$anonfun$3.apply(SparkHadoopWriter.scala:83) 在 org.apache.spark.internal.io.SparkHadoopWriter$$anonfun$3.apply(SparkHadoopWriter.scala:78) 在 org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90) 在 org.apache.spark.scheduler.Task.run(Task.scala:121) 在 org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:402) 在 org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360) 在 org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:408) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) 引起:org.apache.spark.api.python.PythonException:回溯(最近一次调用最后): 文件“/mnt/yarn/usercache/hadoop/appcache/application_1556865500911_0446/container_1556865500911_0446_01_000003/pyspark.zip/pyspark/worker.py”,第 262 行,在 main ("%d.%d" % sys.version_info[:2], 版本)) 例外:worker 中的 Python 2.7 版本与驱动程序 3.5 中的版本不同,PySpark 无法使用不同的次要版本运行。请检查环境变量 PYSPARK_PYTHON 和 PYSPARK_DRIVER_PYTHON 是否设置正确。

【问题讨论】:

    标签: python python-3.x apache-spark hadoop pyspark


    【解决方案1】:

    您有 python 版本问题。您的工作节点 Python 版本 (2.7) 与驱动节点 Python 版本 (3.5) 不同。请安装正确的版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      • 2015-04-06
      • 2017-04-10
      • 2018-10-25
      相关资源
      最近更新 更多