org.apache.avro.SchemaParseException: 未定义的名称

org.apache.avro.SchemaParseException: Undefined name

我的 spark 工作是从 kafka 读取消息并解码消息。我的 spark 作业 运行 在 k8s 和 openstack 上的本地 spark 集群 (https://archive.apache.org/dist/spark/spark-2.2.1/spark-2.2.1-bin-hadoop2.7.tgz) on MAC. but when run the job against spark (2.2.1-hadoop-2.7, from https://hub.docker.com/r/gettyimages/spark/tags) 集群上很好,我收到以下错误:

Caused by: org.apache.avro.SchemaParseException: Undefined name: "my_items"
    at org.apache.avro.Schema.parse(Schema.java:1052)
    at org.apache.avro.Schema.parse(Schema.java:1164)
    at org.apache.avro.Schema.parse(Schema.java:1094)
    at org.apache.avro.Schema$Parser.parse(Schema.java:927)
    at org.apache.avro.Schema$Parser.parse(Schema.java:917)

我很确定在两种情况下,spark 作业正在尝试解析相同的模式。为什么我的 k8s spark 集群上的 spark 作业失败了?我真的很困惑,现在不知道如何调试。欢迎任何提示。谢谢

Avro 可能依赖不同。 1.7.4 对比 1.7.7.

容器镜像:

$ find / | grep avro
/usr/spark-2.2.1/examples/src/main/python/avro_inputformat.py
/usr/spark-2.2.1/examples/src/main/resources/users.avro
/usr/spark-2.2.1/jars/avro-mapred-1.7.7-hadoop2.jar
/usr/hadoop-2.7.3/share/hadoop/kms/tomcat/webapps/kms/WEB-INF/lib/avro-1.7.4.jar
/usr/hadoop-2.7.3/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib/avro-1.7.4.jar
/usr/hadoop-2.7.3/share/hadoop/common/lib/avro-1.7.4.jar
/usr/hadoop-2.7.3/share/hadoop/tools/lib/avro-1.7.4.jar
/usr/hadoop-2.7.3/share/hadoop/mapreduce/lib/avro-1.7.4.jar

spark-2.2.1-bin-hadoop2.7.tgz 文件:

$ find . | grep avro
./spark-2.2.1-bin-hadoop2.7/examples/src/main/python/avro_inputformat.py
./spark-2.2.1-bin-hadoop2.7/examples/src/main/resources/users.avro
./spark-2.2.1-bin-hadoop2.7/jars/avro-mapred-1.7.7-hadoop2.jar
./spark-2.2.1-bin-hadoop2.7/jars/avro-1.7.7.jar
./spark-2.2.1-bin-hadoop2.7/jars/avro-ipc-1.7.7.jar
# Hadoop Avro?