Самый быстрый способ двоичного кодирования фрейма данных PySpark? - PullRequest
1 голос
/ 29 мая 2019

Я пытаюсь добавить функции двоичного кодирования в фрейм данных PySpark и хотел бы знать самый быстрый способ сделать это.

Например, учитывая DataFrame с cols {a, b, c}, яхотел бы создать новые столбцы {is_a_string, is_a_float, ...}, где значение для каждого столбца будет 1,0 или 0,0, в зависимости от типа данных значения для столбца a.

Пока я пробовал UDF.Они работают хорошо, но довольно медленно.Это кажется простой задачей, которую я должен быть в состоянии выполнить со встроенной функцией Spark, но я не могу найти, как это сделать.

Примером может быть:

Aтаблица может выглядеть как

     a | b | c 
r1 | 1 | "" | NULL 
r2 | ""| "" | 1 

Мы хотим превратить это в следующее:

     a | b | c | is_a_int | is_a_string | is_a_null 
r1 | 1 | "" | NULL | 1.0 | 0.0 | 0.0 
r2 | ""| "" | 1    | 0.0 | 1.0 | 0.0

с is_b_int, is_b_string и т. д. ... также как новые столбцы

...