spark报错org.apache.spark.sql.catalyst.errors.package$TreeNodeException: execute, tree:

这篇具有很好参考价值的文章主要介绍了spark报错org.apache.spark.sql.catalyst.errors.package$TreeNodeException: execute, tree:。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

spark报错org.apache.spark.sql.catalyst.errors.package$TreeNodeException: execute, tree:

在用spark开发程序的时候,有时候会看到这个错误。

py4j.protocol.Py4JJavaError: An error occurred while calling o469.count.
: org.apache.spark.sql.catalyst.errors.package$TreeNodeException: execute, tree:
Exchange SinglePartition, ENSURE_REQUIREMENTS, [id=#138]
+- *(1) HashAggregate(keys=[], functions=[partial_count(1)], output=[count#678L])
   +- InMemoryTableScan
         +- InMemoryRelation [imsi#167, s_cellid#168, s_rsrp#169, ta#152L, orig_lon#153, orig_lat#154, mro_ts#173, n1_rsrp#174, n2_rsrp#175, n3_rsrp#176, n1_cell_id#178, n2_cell_id#179, n3_cell_id#180, a#294, b#295, p_day#296, city_id#297], StorageLevel(disk, memory, 1 replicas)
               +- *(7) Project [imsi#167, s_cellid#168, s_rsrp#169, ta#152L, orig_lon#153, orig_lat#154, mro_ts#173, n1_rsrp#174, n2_rsrp#175, n3_rsrp#176, n1_cell_id#178, n2_cell_id#179, n3_cell_id#180, 1 AS a#294, MDT AS b#295, 20230205 AS p_day#296, 572 AS city_id#297]
                  +- *(7) Filter (isnotnull(desc_num#164) AND (desc_num#164 < 150))
                     +- Window [row_number() windowspecdefinition(source_type#155, s_cellid#168, n1_cell_id#178, n2_cell_id#179, n3_cell_id#180, mro_ts#173 DESC NULLS LAST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS desc_num#164], [source_type#155, s_cellid#168, n1_cell_id#178, n2_cell_id#179, n3_cell_id#180], [mro_ts#173 DESC NULLS LAST]
                        +- *(6) Sort [source_type#155 ASC NULLS FIRST, s_cellid#168 ASC NULLS FIRST, n1_cell_id#178 ASC NULLS FIRST, n2_cell_id#179 ASC NULLS FIRST, n3_cell_id#180 ASC NULLS FIRST, mro_ts#173 DESC NULLS LAST], false, 0
                           +- Exchange hashpartitioning(source_type#155, s_cellid#168, n1_cell_id#178, n2_cell_id#179, n3_cell_id#180, 600), ENSURE_REQUIREMENTS, [id=#114]
                              +- *(5) Project [imsi#167, s_cellid#168, s_rsrp#169, ta#152L, orig_lon#153, orig_lat#154, n1_rsrp#174, n2_rsrp#175, n3_rsrp#176, n1_cell_id#178, n2_cell_id#179, n3_cell_id#180, mro_ts#173, source_type#155]
......

这个报错是生成计划树的时候报的错,由于业务比较复杂,spark会生成plan 可能在某个地方出错,而直接抛出了这个错误,就好比java 中 try catch 写了个 Exception 抓个大异常。
spark报错org.apache.spark.sql.catalyst.errors.package$TreeNodeException: execute, tree:,# 数据开发常见错误,spark,sql,大数据

那么如何解决呢???

不要把重点关注在execute, tree这段上,要耐心继续往下翻日志,找到真正的Caused by: 信息。

spark报错org.apache.spark.sql.catalyst.errors.package$TreeNodeException: execute, tree:,# 数据开发常见错误,spark,sql,大数据

我发生这个错误的原因是spark没有找到文件报错。

想了想,这是因为当从Hive元数据中读取orc表时,Spark会尝试使用自己的orc解析器来代替Hive原生,从而提升性能。该操作通过属性 spark.sql.hive.convertMetastoreOrc 来控制,默认是开启的。因为我更换了hive的字段顺序,因此为了让spark读取hive的元数据信息,设置了spark.sql("set spark.sql.hive.convertMetastoreOrc=false")。发现hive中有此分区元数据信息,但是spark读取实际上并没有此目录,因此报错。我删除了此元数据信息,程序运行成功。文章来源地址https://www.toymoban.com/news/detail-527100.html

到了这里,关于spark报错org.apache.spark.sql.catalyst.errors.package$TreeNodeException: execute, tree:的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包