Spark-HashingTF inputCol接受一列,但我想要更多

问题描述 投票:0回答:1

我正在尝试在Spark中使用HashTF,但是我有一个主要问题。如果inputCol只有这样一列

HashingTF(inputCol="bla",outputCol="tf_features") it works fine.

但是如果我尝试添加更多列,则会收到错误消息“无法将列表转换为字符串”。我只想做

HashingTF(inputCol=["a_col","b_col","c_col"], outputCol="tf_features").

关于如何解决它的任何想法?

python apache-spark tf-idf
1个回答
0
投票

HashingTF接受输入一列,如果要使用其他列,则可以使用array函数创建这些列的数组,然后使用explode对其进行展平,您将拥有一列包含所有列中值的列。最后,您可以将该列传递给HashingTF。

df2 = df.select(explode(array(f.col("a_col"),f.col("b_col")))).as('newCol'))

© www.soinside.com 2019 - 2024. All rights reserved.