繁体   English   中英

如何阅读pyspark avro文件并提取值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM