我想从存储在配置单元表中的数据构建一个pyspark-ml模型。数据如下所示:
ID | value
---+------
1 | 100
1 | 101
1 | 102
2 | 101
2 | 103
使用纯Hive,我可以选择使用 collect_set
要将值折叠到配置单元数组中,生成如下内容:
ID | value
---+-----------
1 | (100, 101, 102)
2 | (101, 103)
这些值是分类特征。对于这个特殊的用例,我可以把它们看作1的稀疏向量的索引,但是最好有一个针对一般分类的解决方案 StringIndexer()
. 我想做的是把这些值收集到一个特征向量中,然后我可以把它输入到一个分类器中。
我尝试使用一个udf将数组转换成vectorudt,然后使用vectorindexer()进行特征化,但是当我尝试这样做时,它抱怨所有向量的长度都不相同。
收集这些的正确方法是什么?
1条答案
按热度按时间bzzcjhmw1#
没有什么能阻止你使用
collect_set
在sparksql中也是如此。只是很贵。如果你不介意你所需要的只是一堆进口商品: