【发布时间】:2019-07-09 04:31:13
【问题描述】:
假设我在 Scala Spark 中有以下 DataFrame,其中年份 year 值是字符串分类表示,但数据中有顺序。
+-----+
|years|
+-----+
| 0-1|
| 1-2|
| 2-5|
| 5-10|
+-----+
我想创建一个结果成对矩阵,表示每对值的“距离”。相同的值被赋予1 的分数,在极端的值被赋予0 例如。 “0-1”和“5-10”。剩余的值用线性模型填充。:
我想要以下预期结果(在 DataFrame 或类似结构中查询一对)
x/y, 0-1, 1-2, 2-5, 5-10,
0-1, 1 , 0.33, 0.67, 0,
1-2, 0.33, 1 , 0.33, 0.67,
2-5, 0.67, 0.33, 1 , 0.33,
5-10, 0 , 0.67, 0.33, 1
最后,对于给定的一对years,我想检索distance 值。我想避免对这个解决方案进行硬编码,有更好的方法吗?
【问题讨论】:
-
不太清楚你想在这里计算什么...你是怎么得到
d(1-2, 2-5) = 0的? -
@AndreyTyukin 感谢您指出这一点——我犯了一个错误,应该是 0.33
-
那么,你只关心元素的顺序,数值完全被忽略了,对吧?
-
@AndreyTyukin 你是对的!
标签: algorithm scala dataframe linear-regression