2015-10-26 12 views
5

Załóżmy, że posiada DataFrame x z tego schematu:Casting nową kolumnę uzyskiwać w DataFrame z wartości logicznej na liczbę całkowitą

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

Następnie mają DataFrame:

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

chciałbym mieć kolumna pochodna całkowita. Jestem w stanie utworzyć kolumnę logiczną:

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

Mój nowy schemat jest:

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

Jednak chciałbym kolumnę y zawierają 0 dla fałsz i 1 dla True.

Funkcja cast może działać tylko w kolumnie a nie DataFrame a funkcja withColumn może działać tylko na DataFrame. Jak dodać nową kolumnę i przesłać ją do liczby całkowitej w tym samym czasie?

Odpowiedz

6

Expression użyć ocenia do kolumny tak można oddać bezpośrednio tak:

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