gpt4 book ai didi

scala - Spark avro 到 Parquet

转载 作者:行者123 更新时间:2023-12-02 01:27:49 25 4
gpt4 key购买 nike

我有一个需要存储为 Parquet 文件的 avro 格式数据(json 编码)流。我只能这样做

val df = sqc.read.json(jsonRDD).toDF()

并将df写为 Parquet 。

这里的模式是从 json 推断出来的。但是我已经有了 avsc 文件,我不希望 spark 从 json 推断架构。

并且以上述方式, Parquet 文件将架构信息存储为 StructType 而不是 avro.record.type。有没有办法存储 avro 架构信息。

Spark - 1.4.1

最佳答案

最终使用了这个问题的答案 avro-schema-to-spark-structtype

def getSparkSchemaForAvro(sqc: SQLContext, avroSchema: Schema): StructType = {
val dummyFIle = File.createTempFile("avro_dummy", "avro")
val datumWriter = new GenericDatumWriter[wuser]()
datumWriter.setSchema(avroSchema)
val writer = new DataFileWriter(datumWriter).create(avroSchema, dummyFIle)
writer.flush()
writer.close()
val df = sqc.read.format("com.databricks.spark.avro").load(dummyFIle.getAbsolutePath)
df.schema
}

关于scala - Spark avro 到 Parquet ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36078420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com