我刚刚构建了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$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
答案 0 :(得分:0)
我在这个问题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>