我正在尝试在Spark中使用HashTF,但是我有一个主要问题。如果inputCol只有这样一列
HashingTF(inputCol="bla",outputCol="tf_features") it works fine.
但是如果我尝试添加更多列,则会收到错误消息“无法将列表转换为字符串”。我只想做
HashingTF(inputCol=["a_col","b_col","c_col"], outputCol="tf_features").
关于如何解决它的任何想法?
HashingTF接受输入一列,如果要使用其他列,则可以使用array
函数创建这些列的数组,然后使用explode
对其进行展平,您将拥有一列包含所有列中值的列。最后,您可以将该列传递给HashingTF。
df2 = df.select(explode(array(f.col("a_col"),f.col("b_col")))).as('newCol'))