J'essaie actuellement d'exécuter un travail Spark Scala sur notre cluster HDInsight avec la bibliothèque externe spark-avro, sans succès. Quelqu'un pourrait-il m'aider avec ça? L'objectif consiste à trouver les étapes nécessaires pour pouvoir lire les fichiers avro résidant sur le stockage de blob Azure sur les clusters HDInsight.Comment ajouter databricks avro jar à hdinsight
spécifications actuelles:
- Spark 2.0 sur Linux (3.5 HDI) clustertype
- Scala 2.11.8
- étincelle montage-2.0.0-hadoop2.7.0-SNAPSHOT.jar tutoriel 3.2.0
utilisé::
Code Spark scala:
basé sur l'exemple sur: https://github.com/databricks/spark-avro
import com.databricks.spark.avro._
import org.apache.spark.sql.SparkSession
object AvroReader {
def main (arg: Array[String]): Unit = {
val spark = SparkSession.builder().master("local").getOrCreate()
val df = spark.read.avro("wasb://[email protected]/directory")
df.head(5)
}
}
erreur reçu:
java.lang.NoClassDefFoundError: com/databricks/spark/avro/package$
at MediahuisHDInsight.AvroReader$.main(AvroReader.scala:14)
at MediahuisHDInsight.AvroReader.main(AvroReader.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:627)
Caused by: java.lang.ClassNotFoundException: com.databricks.spark.avro.package$
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
Veuillez fournir votre fichier de construction. Il semble que votre pot attend une certaine dépendance à l'exécution. – Vidya