首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark-Scala UDF自定义转换

Spark-Scala UDF自定义转换
EN

Stack Overflow用户
提问于 2017-01-25 10:07:16
回答 1查看 125关注 0票数 0

确定争用/违反特定规则的行的最佳方法是什么?

我有一个数据框架,它表示商店/商品的组合,可以出售。这里,一个商店可能有许多商品,一个商品可能在多个商店中。例如:

代码语言:javascript
复制
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。

数据帧中将有数百万行。数据框中的大多数项目都是单例的(从而使选择变得容易),但对于一些项目来说,随着规则的分层,选择变得更加困难,即比较采购区域,比较状态,比较价格,如果它们都相等,请选择您遇到的第一个。

寻找想法或建议。

EN

回答 1

Stack Overflow用户

发布于 2017-01-25 11:35:14

filter和reduce怎么样?

假设数据帧是df,组合是store/item,您有一个函数compare,它从两行中确定较好的一个。代码应该是

代码语言:javascript
复制
def compare(row1: Row, row2: Row): Row
df.filter($"Store" === store && $"Item" === item).reduce(compare)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41842259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档