Comment lire Avro fichier dans PySpark
Je suis en train d'écrire une étincelle de travail à l'aide de python. Cependant, j'ai besoin de lire dans un tas de avro fichiers.
Cette est le plus proche de la solution que j'ai trouvé dans la Spark exemple de dossier. Cependant, vous devez soumettre ce script python à l'aide de l'étincelle-soumettre. Dans la ligne de commande des bougies de soumettre, vous pouvez spécifier le pilote de la classe, dans ce cas, tous vos avrokey, avrovalue classe sera situé.
avro_rdd = sc.newAPIHadoopFile(
path,
"org.apache.avro.mapreduce.AvroKeyInputFormat",
"org.apache.avro.mapred.AvroKey",
"org.apache.hadoop.io.NullWritable",
keyConverter="org.apache.spark.examples.pythonconverters.AvroWrapperToJavaConverter",
conf=conf)
Dans mon cas, j'ai besoin de tout faire dans le script Python, j'ai essayé de créer une variable d'environnement pour inclure le fichier jar, doigt de la croix-Python ajouter le bocal pour le chemin d'accès, mais clairement, il n'est pas, il me donne de l'inattendu, de la classe d'erreur.
os.environ['SPARK_SUBMIT_CLASSPATH'] = "/opt/cloudera/parcels/CDH-5.1.0-1.cdh5.1.0.p0.53/lib/spark/examples/lib/spark-examples_2.10-1.0.0-cdh5.1.0.jar"
Quelqu'un peut m'aider comment faire pour lire avro fichier dans un script python?
OriginalL'auteur B.Mr.W. | 2015-04-20
Vous devez vous connecter pour publier un commentaire.
La première solution nécessite d'installer un Java tiers de dépendance, qui n'est pas quelque chose de la plupart Python développeurs sont heureux avec. Mais vous n'avez pas vraiment besoin d'une bibliothèque externe si tout ce que vous voulez faire est d'analyser votre Avro fichiers avec un schéma donné. Vous pouvez seulement lire les fichiers binaires et les analyser avec votre favori python Avro paquet.
Par exemple, c'est comment vous pouvez charger Avro fichiers à l'aide de
fastavro
:OriginalL'auteur Régis B.
Spark >= 2.4.0
Vous pouvez utiliser construit-dans Avro soutien. L'API est compatible avec les
spark-avro
paquet, avec quelques ajouts (notammentfrom_avro
/to_avro
fonction).Veuillez noter que le module n'est pas fourni avec Allumage standard binaires et doit être inclus à l'aide de
spark.jars.packages
ou équivalent mécanisme.Spark < 2.4.0
Vous pouvez utiliser
spark-avro
de la bibliothèque. D'abord, permet de créer un exemple de dataset:De lecture à l'aide de
spark-csv
est aussi simple que cela:OriginalL'auteur zero323