确定争用/违反特定规则的行的最佳方法是什么?
我有一个数据框架,它表示商店/商品的组合,可以出售。这里,一个商店可能有许多商品,一个商品可能在多个商店中。例如:
Row Store Item Price Warehouse Zone Status
1, Store-1, Basketball, 5.99, 21, Z1, Active
2, Store-1, Football, 6.99, 21, Z2, Active
3, Store-2, Basketball 5.99, 21, Z1, Active
4, Store-1, Basketball 4.99, 22, Z1, Not-Active目标是选择Store/Item组合,但有时对于特定的store/item组合有许多选择。关于选择哪种组合,有特定的规则。所有列出的转换都适用于dataframe中的所有行,但我只想关注存在争用的行。在这里它将是1和4。
数据帧中将有数百万行。数据框中的大多数项目都是单例的(从而使选择变得容易),但对于一些项目来说,随着规则的分层,选择变得更加困难,即比较采购区域,比较状态,比较价格,如果它们都相等,请选择您遇到的第一个。
寻找想法或建议。
发布于 2017-01-25 11:35:14
filter和reduce怎么样?
假设数据帧是df,组合是store/item,您有一个函数compare,它从两行中确定较好的一个。代码应该是
def compare(row1: Row, row2: Row): Row
df.filter($"Store" === store && $"Item" === item).reduce(compare)https://stackoverflow.com/questions/41842259
复制相似问题