我正在使用以下代码来转换输入数据。我大约有70,000个输入xml文件,而spark作业大约需要5.6分钟才能创建数据透视表数据集。
有什么办法可以进一步优化它?
String seqnum = "seqnum";
Dataset<Row> atgXmlParse = spark
.read()
.format("xml")
.option(rowtag, "RECORD")
.schema(schema)
.load(path);
Dataset<Row> atgXmlExplodeDS = atgXmlParse
.withColumn(seqnum, monotonically_increasing_id())
.select(col(seqnum), explode(col("PROP")).as("PROP"))
.select(col(seqnum), col("PROP.*"));
return atgXmlExplodeDS
.groupBy(seqnum)
.pivot("_NAME", colList)
.agg(concat_ws(",", collect_list(col("PVAL"))));