相关疑难解决方法(0)

Avro Schema引发StructType

这实际上与我之前的问题相同,但使用Avro而不是JSON作为数据格式.

我正在使用Spark数据帧,它可以从几个不同的模式版本之一加载数据:

// Version One
{"namespace": "com.example.avro",
 "type": "record",
 "name": "MeObject",
 "fields": [
     {"name": "A", "type": ["null", "int"], "default": null}
 ]
}

// Version Two
{"namespace": "com.example.avro",
 "type": "record",
 "name": "MeObject",
 "fields": [
     {"name": "A", "type": ["null", "int"], "default": null},
     {"name": "B", "type": ["null", "int"], "default": null}
 ]
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Spark Avro加载数据.

DataFrame df = context.read()
  .format("com.databricks.spark.avro")
  .load("path/to/avro/file");
Run Code Online (Sandbox Code Playgroud)

可以是Version One文件或Version Two文件.但是我希望能够以相同的方式处理它,将未知值设置为"null".我之前的问题中的建议是设置模式,但是我不想重复自己在.avro文件和火花StructType和朋友中编写模式.如何将avro架构(文本文件或生成的MeObject.getClassSchema())转换为火花StructType

Spark Avro有一个SchemaConverters,但它都是私有的,并返回一些奇怪的内部对象.

java avro apache-spark apache-spark-sql

4
推荐指数
1
解决办法
9011
查看次数

标签 统计

apache-spark ×1

apache-spark-sql ×1

avro ×1

java ×1