2016-09-06 48 views
0

假設我有以下數據星火分配值,如果空列(蟒蛇)

+--------------------+-----+--------------------+ 
|    values|count|    values2| 
+--------------------+-----+--------------------+ 
|    aaaaaa| 249|    null| 
|    bbbbbb| 166|     b2| 
|    cccccc| 1680|   something| 
+--------------------+-----+--------------------+ 

所以,如果有在values2列空值如何將values1列分配給它?所以結果應該是:

+--------------------+-----+--------------------+ 
|    values|count|    values2| 
+--------------------+-----+--------------------+ 
|    aaaaaa| 249|    aaaaaa| 
|    bbbbbb| 166|     b2| 
|    cccccc| 1680|   something| 
+--------------------+-----+--------------------+ 

我想到了以下但不工作的東西:

df.na.fill({"values2":df['values']}).show() 

我發現這種方式來解決它,但應該有一些更明確的前進:

def change_null_values(a,b): 
    if b: 
     return b 
    else: 
     return a 

udf_change_null = udf(change_null_values,StringType()) 

df.withColumn("values2",udf_change_null("values","values2")).show() 

回答