我有一个用例,我需要在 600 + 列上运行 3 个指标(完整性、熵和 countDistinct),查看 DAG,观察到指标是按顺序计算的。我将所有分析器添加到单个 AnalaysisRunner 对象并只进行一次运行调用,任何人都可以帮助了解如何在我的情况下使其并行以优化运行时间?
val analysisRunner = AnalysisRunner.onData(sourceData)
attributesList.foreach(attribute => {
analysisRunner.addAnalyzer(Completeness(attribute))
analysisRunner.addAnalyzer(Entropy(attribute))
analysisRunner.addAnalyzer(CountDistinct(attribute))
})
val analysisResult: AnalyzerContext = analysisRunner.run()
var attributesDataMetrics = successMetricsAsDataFrame(spark, analysisResult)