J'essaie d'inclure le paquet spark-avro en démarrant spark-shell, selon les instructions mentionnées ici: https://github.com/databricks/spark-avro#with-spark-shell-or-spark-submit.spark-avro databricks package
étincelle shell--packages com.databricks: étincelles avro_2.10: 2.0.1
Mon intention est de convertir le schéma Avro pour déclencher le type de schéma, en utilisant la classe SchemaConverter présente dans l'emballage.
import com.databricks.spark.avro._ ... // colListDel est la liste des champs de avsc qui doivent être supprimés pour une raison fonctionnelle.
for(field <- colListDel){
println(SchemaConverters.toSqlType(field.schema()).dataType);
}
...
Lors de l'exécution de la boucle ci-dessus pour, je reçois ci-dessous erreur:
<console>:47: error: object SchemaConverters in package avro cannot be accessed in package com.databricks.spark.avro
println(SchemaConverters.toSqlType(field.schema()).dataType);
S'il vous plaît indiquer s'il y a quelque chose que je suis absent ou laissez-moi savoir comment inclure SchemaConverter dans mon code scala.
Voici mes coordonnées ENVT: version Spark: 1.6.0 Cloudera VM 5,7
Merci!
avez-vous déjà trouvé ça? Je cours dans la même erreur. – user3809888
Solution de contournement: une fois la commande de package exécutée, elle télécharge les fichiers JAR dans un dossier caché: **. Ivy2/jars **. J'ai utilisé ces jars dans le classpath et j'ai écrit le code personnalisé scala pour utiliser les classes de la bibliothèque de paquets. Semble interne schemaconverter est un membre privé et si vous avez besoin, vous devez le personnaliser, en vérifiant les conditions de licence requises. laissez-moi savoir si cela aide. – hadooper
Probablement le 2.0.1 n'a pas été construit à partir de la branche 2.0 la plus récente. J'ai remarqué que cette classe était privée: https://github.com/databricks/spark-avro/blob/branch-1.0/src/main/scala/com/databricks/spark/avro/SchemaConverters.scala –