2016-04-06 28 views
0

İçinde bir sütun içeren sütun ekle Spark'de f adlı bir veri çerçevem ​​var ve kutuya bir sütun eklemek istiyorum. Bu ben denedim budur:Kıvılcım

df = f.withColumn('new_col', (case f.val when 1 then 'Y' when 0 then 'N' else null)) 

kimse bu nasıl uygulanacağı söyleyebilir.

cevap

0

Bu null parçasını bu şaşırtıcı bir şekilde zorlaştırır.

val newDF = Seq(("Y",0)).toDF("srcVal", "newVal") 
// +------+------+ 
// |srcVal|newVal| 
// +------+------+ 
// |  Y|  0| 
// +------+------+ 

val df = Seq((1,"Y"),(2,"N"),(3,"Y")).toDF("key","value") 
// +---+-----+ 
// |key|value| 
// +---+-----+ 
// | 1| Y| 
// | 2| N| 
// | 3| Y| 
// +---+-----+ 

val finalDf = df.join(newDF, $"value" === $"srcVal", "left_outer").drop($"srcVal") 
// +---+-----+------+ 
// |key|value|newVal| 
// +---+-----+------+ 
// | 1| Y|  0| 
// | 2| N| null| 
// | 3| Y|  0| 
// +---+-----+------+ 
: Tek çözüm çeviri değerlerle bir DataFrame oluşturmak ve buna karşı left_outer ile join yapmaktır