2015-10-26 6 views
5

私はこのスキーマとデータフレームxがあるとします。は整数へ

DataFrame[a :double, b:double, c:double] 

は私が持っているしたいと思います:私は、データフレームを持って

xSchema = StructType([ \ 
    StructField("a", DoubleType(), True), \ 
    StructField("b", DoubleType(), True), \ 
    StructField("c", DoubleType(), True)]) 

整数派生列。私はブール列を作成することができています:

x = x.withColumn('y', (x.a-x.b)/x.c > 1) 

私の新しいスキーマは次のとおりです。

DataFrame[a :double, b:double, c:double, y: boolean] 

しかし、私は真のために偽のための0と1を格納するための列yをしたいと思います。

cast関数は、列としないDataFrame上で動作することができ、withColumn機能のみDataFrame上で動作することができます。新しい列を追加して同時に整数にキャストする方法は?あなたはこのように直接キャストすることができますので、あなたが使用

答えて

6

発現は、列に評価されます。

x.withColumn('y', ((x.a-x.b)/x.c > 1).cast('integer')) # Or IntegerType()