Hi,

I am using HDP 2.4 sandbox. I download spark-avro jar file and add the
following to
/etc/spark/2.4.0.0-169/0/spark-defaults.conf
and
/usr/hdp/2.4.0.0-169/etc/spark/conf/spark-defaults.conf.

spark.driver.extraClassPath /opt/spark-jars/spark-avro_2.10-2.0.1.jar
spark.executor.extraClassPath /opt/spark-jars/spark-avro_2.10-2.0.1.jar
spark.files /opt/spark-jars/spark-avro_2.10-2.0.1.jar

I also add
export SPARK_SUBMIT_OPTIONS="--packages
com.databricks:spark-avro_2.10:2.0.1"
to file
/etc/zeppelin/conf.dist/zeppelin-env.sh.

If I run pyspark and run the following codes, it works.
df =
sqlContext.read.format("com.databricks.spark.avro").load("/user/root/ato/RES_TRANSACTION.avro")

But if I go to zeppelin, and run the following same codes.
%pyspark
df =
sqlContext.read.format("com.databricks.spark.avro").load("/user/root/ato/RES_TRANSACTION.avro")
It failed. The error is
Py4JJavaError: An error occurred while calling o66.load.
: java.lang.ClassNotFoundException: Failed to find data source:
com.databricks.spark.avro. Please use Spark package
http://spark-packages.org/package/databricks/spark-avro
at
org.apache.spark.sql.execution.datasources.ResolvedDataSource$.lookupDataSource(ResolvedDataSource.scala:72)
at
org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:102)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:119)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:381)
at py4j.Gateway.invoke(Gateway.java:259)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:209)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException:
com.databricks.spark.avro.DefaultSource
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at
org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4$$anonfun$apply$1.apply(ResolvedDataSource.scala:62)
at
org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4$$anonfun$apply$1.apply(ResolvedDataSource.scala:62)
at scala.util.Try$.apply(Try.scala:161)
at
org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4.apply(ResolvedDataSource.scala:62)
at
org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4.apply(ResolvedDataSource.scala:62)
at scala.util.Try.orElse(Try.scala:82)
at
org.apache.spark.sql.execution.datasources.ResolvedDataSource$.lookupDataSource(ResolvedDataSource.scala:62)
... 14 more
(<class 'py4j.protocol.Py4JJavaError'>, Py4JJavaError(u'An error occurred
while calling o66.load.\n', JavaObject id=o67), <traceback object at
0x7f230714a170>)

Can anyone please help?

Thanks,

York

Reply via email to