我正在使用 Python 编写 Spark 作业。不过,我需要读取大量的 avro 文件。
这个 是在 Spark 示例文件夹中找到的最接近的解决方案。不过,你需要使用 spark-submit 提交这个 Python 脚本。在 spark-submit 的命令行中,你可以指定 driver-class,在那种情况下,所有的 avrokey、avrovalue 类将被定位。
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)
在我的情况下,我需要在Python脚本中运行所有内容,我尝试创建一个环境变量来包含jar文件,希望通过这种方式Python可以将其添加到路径中,但是很明显并没有成功,它给我报了一个意料之外的类错误。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"
有人可以帮我在一个Python脚本中如何读取Avro文件吗?
pyspark
和from_avro
的示例,可以吗? - Soumendrafrom_avro
和to_avro
函数。根据此处的“@since”标签,看起来这些函数将在 PySpark 3.0 中添加。链接 - mattjw