【问题标题】:Using 'modified javascript' need to calculate cumulative sum of product in pentaho kettle使用'modified javascript'需要计算pentaho水壶中产品的累积总和
【发布时间】:2017-12-25 07:15:18
【问题描述】:

我坚持在“修改的 javascript”步骤中创建多维数组 我有这样的输入

ID产品销售

1 水果 10

2 饼干 20

1 水果 12

3 啤酒 29

我正在尝试创建 javascript 以在多维数组中添加这些列值并根据“产品”进行排序,然后将尝试根据“产品”对销售额求和。 预期输出:id 1-> Fruits -sales(10+12)=22 你能帮忙用javascript数组或地图解决这个问题吗? 我已经使用诸如“groupby”之类的水壶步骤完成了此操作,但需要通过 javascript 解决此问题。

【问题讨论】:

  • 你能展示你尝试过的东西吗?这是一个很棒的网站,可以帮助您改进解决方案,但不擅长为您解决问题。
  • @RobAnthony var map = {};地图[产品] = 增量;变量值; var股票=0; for (var key in map) { value = map[key]; //if(map.has(key)) if(key == key) { stock = stock + value; } 其他 { 股票 = 价值; } }
  • 为什么需要 javascript? Group by 会更快,并且是推荐的方式。改用 javascript 是一种 hacky 方式。
  • @nsousa 我正在使用 javascript 来提高编码技能..
  • Rupesh,有各种各样的 javascript 引擎,每个都有自己的可用功能。 Kettle 使用由 mozilla 开发的“Rhino”引擎,并且仅限于一组特定的功能。所以,它并没有所有的 javascript 函数都可用。

标签: javascript pentaho kettle


【解决方案1】:

使用 javascript 无法实现您想要完成的任务。 “Modified Java Script Value”步骤以每行的方式工作,因此它无法访问整个数据集,而只能访问当前正在处理的记录。

您可以使用“分组依据”步骤来完成此操作。在这种情况下,您的“ID”或“产品”应该是“组”字段,而“销售”应该是“主题”。最后,类型应该是“Sum”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-21
    • 2020-11-21
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多