我試過這兩個選項:
object DSChecker {
implicit def checkImplFunction(dataset: Dataset[Row], config:Config): Checker = new Checker (dataset, config)
}
和
object DSChecker {
implicit def checkImplFunction(dataset: Dataset[Row])(implicit config:Config): Checker = new Checker (dataset, config)
}
他們編譯,但問題是當我需要兩個使用它們時。
我也嘗試了多種組合,但它們無法編譯......(evalDifferences 是 clas Checker 中的“正常”函式)
//Whithout implicit args in implicit function
import DSChecker._
(df1, difConfig).evalDifferences(df2)
或者
// With config as implicit arg in implicit funciton
import DSChecker._
df1.evalDifferences(df2)
問題總是一樣的......編譯器找不到“evalDifferences”方法。
有人能幫我嗎?
uj5u.com熱心網友回復:
在您的情況下,我認為擴展方法更適合:
object DSChecker {
implicit class DfExtension(df: Dataframe) {
def checker(implicit config: Config) = {
new Checker(df, config)
}
}
}
df1.checker.evalDifferences(df2)
您也可以evalDifferences直接公開為擴展方法。
uj5u.com熱心網友回復:
嘗試Tuple:
object DSChecker {
implicit def checkImplFunction(data: (Dataset[Row], Config)): Checker = new Checker (data._1, data._2)
}
然后,這應該作業:
//Whithout implicit args in implicit function
import DSChecker._
(df1, difConfig).evalDifferences(df2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/405126.html
標籤:
