我试图展平深层嵌套的XML架构 . 我发现下面的解决方案适用于structType

Automatically and Elegantly flatten DataFrame in Spark SQL

但我试图压缩的模式包含ArrayType,并且我无法解析那些访问深层嵌套标签的模式 .

需要帮助编写/修改甚至访问ArrayType和StructType的类似函数

这是我试图压扁的架构的一小部分

val customSchema = StructType(StructField(authorit,StringType,true),StructField(companynumb,StringType,true),StructField(duplicate,LongType,true),StructField(fulfillexpeditecriteria,LongType,true),StructField(happencountry,StringType,true) ,StructField(patient,StructType(StructField)(药物,ArrayType(StructType(StructField(actiondrug,LongType,true),StructField(activesubstance,StructType(StructField(activesubstancename,StringType,true)),true),StructField(附加,LongType,true) ),StructField(drugadministrationroute,LongType,true),StructField(drugauttion,LongType,true),StructField(drugbatchnumb,StringType,true),StructField(drugchrization,LongType,true),StructField(drugcosagenumb,DoubleType,true),StructField(drugcugeunit) ,LongType,true),StructField(drugdosageform,StringType,true),StructField(drugdosagetext,StringType,true),StructField(drugenddate,LongType,true),StructField(drugenddateformat,LongType,true),StructField(drugindication,StringType,true) ,StructField(drugefinition ,LongType,true),StructField(drugieunitnumb,LongType,true),StructField(drugnistration,LongType,true),StructField(drugrecurrence,ArrayType(StructType(StructField(drugrecuraction,StringType,true)),true),true),StructField( druenumb,LongType,true),StructField(drugstartdate,LongType,true),StructField(drugateformat,LongType,true),StructField(drugstructuredosagenumb,DoubleType,true),StructField(drugstruosageunit,LongType,true),StructField(drugtration,DoubleType,true ),StructField(drugtronunit,LongType,true),StructField(medicinalproduct,StringType,true)),true),true),StructField(patientagegroup,LongType,true),StructField(patientonsetage,DoubleType,true),StructField(patientonsetageunit,LongType) ,true),StructField(patientsex,LongType,true),StructField(patientweight,DoubleType,true),StructField(反应,ArrayType(StructType(StructField(reactiorapt,StringType,true),StructField(reactionpt,DoubleType,true),StructField( reactionoutcome,LongType,true)),true),true),StructField(summary,Str uctType(StructField(narraclinical,StringType,TRUE)),真)),真)

我在这里先向您的帮助表示感谢 ....