0
我在Spark中有一個名爲f
的數據框,我想根據大小寫添加一個列。 這是我曾嘗試:在spark中添加一個列
df = f.withColumn('new_col', (case f.val when 1 then 'Y' when 0 then 'N' else null))
誰能告訴如何實現這一點。
我在Spark中有一個名爲f
的數據框,我想根據大小寫添加一個列。 這是我曾嘗試:在spark中添加一個列
df = f.withColumn('new_col', (case f.val when 1 then 'Y' when 0 then 'N' else null))
誰能告訴如何實現這一點。
null
部分使這非常困難。一種解決方案是創建您的翻譯值的DataFrame
,並做了join
與left_outer
反對這個:
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|
// +---+-----+------+