我读取并过滤数据,需要计算每个过滤操作如何影响结果。使用 Dataframe/Dataset api 时是否可以以某种方式混合 Spark 累加器?
示例代码:
sparkSession.read
.format("org.apache.spark.sql.delta.sources.DeltaDataSource")
.load(path)
// use spark accumulator to count records that passed filter
.where(col("ds") >= dateFromInclusive and col("ds") < dateToExclusive)
// same here
.where(col("origin").isin(origins)
您可以使用 count_if 对多个过滤器进行计数(并在一次传递中获取计数),但不能按照代码示例同时使用它们过滤行。
Sql 函数文档中的示例: