在我的源数据中,我没有任何可以对数据进行分组的类别列。你知道吗
因此,我想在Spark dataframe中添加一个新的定制category列,该列基于另一个列,比如(“QNAME”)distinct值。我想在分组中使用它来旋转。你知道吗
直到现在,我都不知道。。。如何得到这个。你知道吗
假设我有下面的源数据帧
Qname b c d
SPT 1 10 555
MTK 2 20 556
NKP 3 30 557
LKM 4 40 558
SPT 5 50 559
MTK 7 70 561
QRS 6 60 560
NKP 7 70 561
SPT 5 50 559
LKM 7 70 561
QRS 7 70 561
MTK 7 70 561
NKP 7 70 561
所以,在列(“QNAME”)值的基础上,我想对不同的值组合进行分类。 例如,ditinct值是(SPT、MTK、NKP、LKM、QRS)。。。因此,对于这个值的第一个出现将被标记为“aaa”,然后第二个出现将被标记为“bbb”,依此类推。你知道吗
因此,下面是预期输出。你知道吗
Category Qname b c d
"aaa" SPT 1 10 555
"aaa" MTK 2 20 556
"aaa" NKP 3 30 557
"aaa" LKM 4 40 558
"bbb" SPT 5 50 559
"bbb" MTK 7 70 561
"aaa" QRS 6 60 560
"bbb" NKP 7 70 561
"ccc" SPT 5 50 559
"bbb" LKM 7 70 561
"bbb" QRS 7 70 561
"ccc" MTK 7 70 561
"ccc" NKP 7 70 561
我用Scala和Spark来做这个。 任何帮助或建议都将不胜感激。 提前谢谢!你知道吗
任务可以通过窗口函数“row\u number()”完成。如果考虑到 乔纳森·迈尔斯评论说,最好只用数字而不是字符:
结果:
相关问题 更多 >
编程相关推荐