【发布时间】:2017-04-12 06:02:04
【问题描述】:
我有一张这样的桌子
+---------------+------+
|id | value|
+---------------+------+
| 1|118.0|
| 2|109.0|
| 3|113.0|
| 4| 82.0|
| 5| 60.0|
| 6|111.0|
| 7|107.0|
| 8| 84.0|
| 9| 91.0|
| 10|118.0|
+---------------+------+
ans 想将值聚合或合并到一个范围 0,10,20,30,40,...80,90,100,110,120我如何在 SQL 或更具体的 spark sql 中执行此操作?
目前我有一个横向视图加入范围,但这似乎相当笨拙/效率低下。
离散的分位数并不是我真正想要的,而是具有此范围的CUT。
编辑
https://github.com/collectivemedia/spark-ext/blob/master/sparkext-mllib/src/main/scala/org/apache/spark/ml/feature/Binning.scala 会执行动态分箱,但我宁愿需要这个指定范围。
【问题讨论】:
-
org.apache.spark.ml.feature.Bucketizer采用明确提供的分割点数组。然后,您应该能够在输出列上进行分组。 -
我认为在这种情况下,建议的解决方案更简单/可能更有效。
标签: sql apache-spark apache-spark-sql