Как дополнительно оптимизировать стержень набора данных Spark - PullRequest
0 голосов
/ 27 ноября 2018

Я использую приведенный ниже код для преобразования входных данных.У меня есть около 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"))));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...