apache-spark - 火花:java.io.InvalidClassException
问题描述
自从从本地 Spark 部署迁移到独立集群后,我遇到了以下异常:
java.io.InvalidClassException:org.apache.spark.sql.cassandra.CassandraSQLRow;本地类不兼容:流classdesc serialVersionUID = -6648071136076699828,本地类serialVersionUID = -1718118159864345582
我确切地知道它什么时候发生。当我将阴影 jar 从 build 的目标目录重新部署到 Spark master 而不实际重新编译 jar 时,就会发生这种情况。(这只是一个用于开发的便利脚本,显然不能在集群中工作)
但是,在这些情况下,我实际上并不了解此异常的原因。如果尚未重新编译该类,serialVersionUID 是如何更改的?
解决方案
我有不同版本的spark-cassandra-connector
--packages 版本与我的 pom.xml 中的版本不同。后一种依赖可能在 Maven 的测试范围之外是不必要的
推荐阅读
- gitlab - GitLab 中的标签提要仅显示 20 个条目
- android - 如何在 reduce 函数中填充新列表 - Kotlin
- angular - 使用 Observable 在 Angular 中使用 Chart.JS 创建图表
- python - ModuleNotFoundError - Python3
- python - 在 numpy 二维数组中查找元素索引的最有效方法
- java - 为什么 Rstudio 与 JRI 引擎输出不同?
- omnet++ - 如何解决错误“const inet::MacHeaderBase' as 'this' argument discards qualifiers [-fpermissive]”
- ios - XCode 从模块继承选项被禁用
- c++ - Opencv如何通过GPU读取网络摄像头流?
- angular - Angular 配置或编译 JSON 资产