我有很多非规范化数据,我需要对其进行一些计算。大约有 28 列,其中 1 列是 ID 列,其中 5 列我需要求和,其余的我只需要报告。因此,对于单个 ID,其中 22 个列始终相同。目前,我正在对 23 列进行分组,然后将 5 列相加。在我看来,这可能有过多的开销。有没有更好的处理方法?
这是初始加载后的脚本:
grouped = GROUP inputData BY
(SITE_ID_COL,
META_ID_COL,
ITEM_ID_COL,
SELLER_ID_COL,
CATEGORY1_COL,
CATEGORY2_COL,
TOTAL_WATCH_COL,
ITEM_TITLE_COL,
AUCT_TYPE_COL,
CURRENCY_COL,
ITEM_PRICE_COL,
SHIPPING_TYPE_COL,
SHIPPING_FEE_COL,
START_DATE_COL,
TOTAL_QTY_COL,
QTY_AVAIL_COL,
STATUS_ID_COL,
AUCT_DURATION_COL,
END_DATE_COL,
LOGIN_ATOL_COL,
LOGIN_LATEST_COL);
filtered = FOREACH grouped GENERATE
flatten(group),
SUM(inputData.IMPRESSION_COL),
SUM(inputData.CLICK_COL),
SUM(inputData.BIDCOUNT_COL),
SUM(inputData.QTY_SOLD_COL),
SUM(inputData.CK_TRANS_COL),
SUM(inputData.GMV_COL);
STORE filtered INTO 'output/';