首页 文章

无法在pyspark应用程序中获取broadcast_1的broadcast_1_piece0

提问于
浏览
0

我正在使用Python 3.4在Apache Spark 2.00上构建应用程序,并尝试从HDFS(Hadoop 2.7)加载一些CSV文件,并从这些CSV数据中处理一些KPI .

我在我的应用程序中随机地面对“无法获得broadcast_1_piece0的broadcast_1”错误并停止了 .

搜索了很多google和stakeoverflow后,我发现只有通过从/ tmp目录手动删除spark app创建的文件才能摆脱它 . 它通常发生在应用程序运行很长时间且没有正确响应但相关文件位于/ tmp目录中时 .

虽然我没有为广播声明任何变量,但可能是火花本身正在做 .

在我的情况下,当它尝试从hdfs加载csv时发生错误 .

我已经为我的应用程序采取了低级别的日志,并附上此支持和建议/最佳实践,以便我可以解决问题 .

Sample (details are Attached here):

回溯(最近一次调用最后一次):文件“/home/hadoop/development/kpiengine.py”,第258行,在df_ho_raw = sqlContext.read.format('com.databricks.spark.csv') . options(header = 'true') . 加载(HDFS_BASE_URL HDFS_WORK_DIR文件名)文件“/usr/local/spark/python/lib/pyspark.zip/pyspark/sql/readwriter.py”,第147行,在加载文件“/ usr / local / spark /python/lib/py4j-0.10.1-src.zip/py4j/java_gateway.py“,第933行,在调用文件中”/usr/local/spark/python/lib/pyspark.zip/pyspark/sql/utils . py“,第63行,在deco文件中”/usr/local/spark/python/lib/py4j-0.10.1-src.zip/py4j/protocol.py“,第312行,在get_return_value py4j.protocol.Py4JJavaError:An调用o44.load时发生错误 . :org.apache.spark.SparkException:作业因阶段失败而中止:阶段0.0中的任务0失败4次,最近失败:阶段0.0中丢失的任务0.3(TID 3,172.26.7.192):java.io.IOException: org.apache.spark.SparkException:无法获得broadcast_1的broadcast_1_piece0

1 回答

  • 0
    • 您应该为您的类扩展Serializable

    • 您的代码框架错误,您可以测试它

    $SPARK_HOME/examples/src/main/scala/org/apache/spark/examples/
    

    如果没关系,你应该检查你的代码 .

相关问题