2024-04-26 06:51:42 发布
网友
我在Spark中有一个名为f的数据帧,我想根据大小写向它添加一列。 这就是我尝试过的:
f
df = f.withColumn('new_col', (case f.val when 1 then 'Y' when 0 then 'N' else null ))
谁能告诉我如何实现这一点。你知道吗
null部分使这一点变得异常困难。一种解决方案是使用翻译值创建一个DataFrame,然后使用left_outer对其执行join:
null
DataFrame
left_outer
join
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| // + -+ -+ +
null
部分使这一点变得异常困难。一种解决方案是使用翻译值创建一个DataFrame
,然后使用left_outer
对其执行join
:相关问题 更多 >
编程相关推荐