[英]How to read pyspark avro file and extract the values?
如何阅读pyspark中的twitter.avro文件并从中提取值?
rdd=sc.textFile("twitter.asvc")
运行良好
但是,当我这样做
rdd1=sc.textFile("twitter.avro")
rdd1.collect()
我收到下面的输出
['的OBJ \\ X01 \\ X02 \\ x16avro.schema \\ X04 { “类型”: “记录”, “名”: “情节”, “命名空间”: “testing.hive.avro.serde”, “田”:[{ “name”:“title”,“type”:“string”,“doc”:“剧集标题”},{“name”:“air_date”,“type”:“string”,“doc”:“初始日期“},{”name“:”doctor“,”type“:”int“,”doc“:”主要演员在剧集中扮演医生“}}} \\ x00kR \\ x03LS \\ x17m |] Z ^ {0 \\ x10 \\ x04“第十一个小时\\ x183 2010年4月\\ x16”医生的妻子\\ x1614 2011年5月\\ x16&方岩的恐怖#1977年9月3日\\ x08 $一个不可思议的孩子1963年11月23日\\ x02 *神秘的星球1986年9月6日\\ x0c \\ x08Rose \\ x1a26 2005年3月\\ x12.Daleks的力量\\ x1e5 1966年11月\\ x04 \\ x14Castrolava \\ x1c4 1982年1月','kR \\ x03LS \\ x17m |] Z ^ {0']
是否有用于阅读此格式的python库?
您应该使用特定于Avro文件的FileInputFormat。
不幸的是我没有使用python所以我只能链接到一个解决方案。 您可以查看: https : //github.com/apache/spark/blob/master/examples/src/main/python/avro_inputformat.py
最有趣的部分是这一个:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.