gpt4 book ai didi

scala - Spark,在 Scala 中添加具有相同值的新列

转载 作者:行者123 更新时间:2023-12-04 01:23:40 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to add a constant column in a Spark DataFrame?

(3 个回答)


去年关闭。




我对 withColumn 有一些问题Spark-Scala 环境中的函数。
我想在我的 DataFrame 中添加一个新列,如下所示:

+---+----+---+
| A| B| C|
+---+----+---+
| 4|blah| 2|
| 2| | 3|
| 56| foo| 3|
|100|null| 5|
+---+----+---+

变成了:
+---+----+---+-----+
| A| B| C| D |
+---+----+---+-----+
| 4|blah| 2| 750|
| 2| | 3| 750|
| 56| foo| 3| 750|
|100|null| 5| 750|
+---+----+---+-----+

一个值中的 D 列对于我的 DataFrame 中的每一行重复 N 次。

代码是这样的:
var totVehicles : Double = df_totVehicles(0).getDouble(0); //return 750

变量 totVehicles 返回正确的值,它的工作原理!

第二个 DataFrame 必须计算 2 个字段(id_zipcode、n_vehicles),并添加第三列(具有相同的值 -750):
var df_nVehicles =
df_carPark.filter(
substring($"id_time",1,4) < 2013
).groupBy(
$"id_zipcode"
).agg(
sum($"n_vehicles") as 'n_vehicles
).select(
$"id_zipcode" as 'id_zipcode,
'n_vehicles
).orderBy(
'id_zipcode,
'n_vehicles
);

最后,我添加了 withColumn 的新列功能:
var df_nVehicles2 = df_nVehicles.withColumn(totVehicles, df_nVehicles("n_vehicles") + df_nVehicles("id_zipcode"))

但是 Spark 返回给我这个错误:
 error: value withColumn is not a member of Unit
var df_nVehicles2 = df_nVehicles.withColumn(totVehicles, df_nVehicles("n_vehicles") + df_nVehicles("id_zipcode"))

你能帮助我吗?
非常感谢!

最佳答案

lit功能是将文字值添加为列

import org.apache.spark.sql.functions._
df.withColumn("D", lit(750))

关于scala - Spark,在 Scala 中添加具有相同值的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38587609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com