我正在尝试使用Spark和XML文档将XML数据转换为Avro,我有各种名称空间,并且是具有深层嵌套结构的复杂类型。
尝试将数据保存为Avro格式时,出现以下错误
org.apache.avro.SchemaParseException: Illegal character in: ns1:arrivalInformation
正确的做法是,Avro在字段名称中不允许使用“:”。
我正在尝试从数据中创建Avro模式,因此在尝试将数据保存为Avro格式时无法提供模式。
我有一个选择是在DataFrame上重命名Column。由于数据的嵌套性质,这似乎是非常艰巨的任务,而我需要提供大量的struts类型。
我试图递归地导航DataFrame的架构,并通过调用函数来重命名列。
重命名(用'_'替换特殊字符)列的唯一目的是使这些列名称对Avro格式有效。
感谢所有输入。
谢谢