Spark - HashingTF inputCol принимает один столбец, но я хочу больше - PullRequest
0 голосов
/ 27 октября 2019

Я пытаюсь использовать HashTF в Spark, но у меня есть одна серьезная проблема. Если у inputCol есть только один столбец, подобный этому

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

Но если я пытаюсь добавить больше столбцов, я получаю сообщение об ошибке «Невозможно преобразовать список в строку». Все, что я хочу сделать, это

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

Есть идеи, как это исправить?

1 Ответ

0 голосов
/ 27 октября 2019

HashingTF принимает на вход один столбец, если вы хотите использовать другие столбцы, вы можете создать массив этих столбцов, используя функцию array, а затем выровнять их, используя explode, у вас будет один столбец со значениями из всех столбцов. Наконец, вы можете передать этот столбец в HashingTF.

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

...