Spark 1.2.1,python avro 示例没有 运行

Spark 1.2.1, python avro example does not run

我刚刚构建了 spark 1.2.1,我正在尝试 运行 avro 示例,但它失败了。

    cd spark-1.2.1
    mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.5.2 -DskipTests clean package

我做错了什么?我 运行 :

    cd spark-1.2.1
    bin/spark-submit --driver-class-path examples/target/spark-examples_2.10-1.2.1.jar examples/src/main/python/avro_inputformat.py examples/src/main/resources/users.avro

最后我遇到了以下错误:

 py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.newAPIHadoopFile.
: java.lang.ClassNotFoundException: org.apache.avro.mapred.AvroKey
    at java.net.URLClassLoader.run(URLClassLoader.java:366)
    at java.net.URLClassLoader.run(URLClassLoader.java:355)

我在这个问题的一个答案中找到了诀窍 Spark: Writing to Avro file

我需要在构建之前将以下块添加到 Maven pom.xml 文件中,然后就可以了。

<dependency>
 <groupId>org.apache.avro</groupId>
  <artifactId>avro-mapred</artifactId>
  <version>1.7.7</version>
  <classifier>hadoop2</classifier>
</dependency>

显然与此问题相关 https://issues.apache.org/jira/browse/SPARK-3039