火花 > = 2.4.0
您可以使用内置的Avro支持。该API向后兼容该
spark-avro程序包,并增加了一些附加功能(最引人注目的是
from_avro/
to_avro函数)。
请注意,模块未与标准Spark二进制文件捆绑在一起,必须使用
spark.jars.packages或等效机制将其包含在内。
另请参阅Pyspark 2.4.0,使用读取流从kafka读取avro-
Python
Spark <2.4.0
您可以使用
spark-avro库。首先让我们创建一个示例数据集:
import avro.schemafrom avro.datafile import DataFileReader, DataFileWriterschema_string ='''{"namespace": "example.avro", "type": "record", "name": "KeyValue", "fields": [ {"name": "key", "type": "string"}, {"name": "value", "type": ["int", "null"]} ]}'''schema = avro.schema.parse(schema_string)with open("kv.avro", "w") as f, DataFileWriter(f, DatumWriter(), schema) as wrt: wrt.append({"key": "foo", "value": -1}) wrt.append({"key": "bar", "value": 1})
使用它读取
spark-csv就像这样简单:
df = sqlContext.read.format("com.databricks.spark.avro").load("kv.avro")df.show()## +---+-----+## |key|value|## +---+-----+## |foo| -1|## |bar| 1|## +---+-----+
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)