对PySpark数据帧进行二进制编码的最快方法?

时间:2019-05-29 19:59:43

标签: python machine-learning pyspark data-science pyspark-sql

我正在尝试将二进制编码功能添加到PySpark数据框中,并想知道这样做的最快方法。

例如,给定一个带有cols {a,b,c}的DataFrame,我想创建新的cols {is_a_string,is_a_float,...},其中每个col的值将是1.0或0.0,具体取决于col a的值的数据类型。

到目前为止,我已经尝试了UDF。它们工作正常,但速度很慢。这似乎是一个简单的任务,我应该可以使用内置的Spark函数来完成,但是我找不到如何做到的。

一个例子是:

表可能看起来像

     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等...也作为新列

0 个答案:

没有答案