火花数据集AGG方法



我正在努力使用SPARK和DATASET API创建一些分析数据集。我到了一个计算一些变量的地方,看起来像这样:

CntDstCdrs1.groupByKey(x => (x.bs_recordid, x.bs_utcdate)).agg(
   count(when(($"bc_sub_org_id" === lit(500) && $"bc_utcdate" >= $"day_1" && $"bc_utcdate" <= $"bs_utcdate") , $"bc_phonenum")).as[Long].name("count_phone_1day"),
   count(when(($"bc_sub_org_id" === lit(500) && $"bc_utcdate" >= $"day_3" && $"bc_utcdate" <= $"bs_utcdate") , $"bc_phonenum")).as[Long].name("count_phone_3day_cust"),
   count(when(($"bc_sub_org_id" === lit(500) && $"bc_utcdate" >= $"day_5" && $"bc_utcdate" <= $"bs_utcdate") , $"bc_phonenum")).as[Long].name("count_phone_5day_cust"),
   count(when(($"bc_sub_org_id" === lit(500) && $"bc_utcdate" >= $"day_7" && $"bc_utcdate" <= $"bs_utcdate") , $"bc_phonenum")).as[Long].name("count_phone_7day_cust")
  ).show()

此代码可以正常工作,但是当我尝试为变量" count_phone_30day"添加更多计数时,我会遇到一个错误.."方法过载..."这意味着数据集上的AGG方法签名最大为4列表达式?无论如何,如果这种方法不是计算大量变量的最佳练习,那么哪一个?我有计数,计数不同,总和等。

kr,Stefan

Dataset.groupByKey返回 KeyValueGroupedDataset

此类没有带有varargs的agg-您只能提供4列作为参数

相关内容

  • 没有找到相关文章

最新更新