TypeError: withColumn() takes exactly 3 arguments (2 given)
TypeError: withColumn() takes exactly 3 arguments (2 given)
我正在尝试在 Databricks 中创建 2 列,这是减去 2 列的值并添加这 2 列的值的结果。
这是我输入的代码。
dfPrep = dfCleanYear.withColumn(df.withColumn("NuevaCol", df["AverageTemperature"] - df["AverageTemperatureUncertainty"])).withColumn(df.withColumn("NuevaCol", df["AverageTemperature"] + df["AverageTemperatureUncertainty"]))
dfPrep.show()
这就是错误。
类型错误:withColumn() 恰好接受 3 个参数(给定 2 个)
你知道缺少哪个参数吗?
谢谢
不清楚您使用的是哪个 Spark version/flavour。但是 DataBricks 文档通常对此很清楚,.withColumn
调用中的第一个参数应该是 DataFrame。
示例:https://docs.azuredatabricks.net/spark/1.6/sparkr/functions/withColumn.html
Syntax:
withColumn(df, “newColName”, colExpr)
Parameters:
df: Any SparkR DataFrame
newColName: String, name of new column to be added
colExpr: Column Expression
我们可以重写您的代码:
a = df.withColumn("NuevaCol", df["AverageTemperature"] - df["AverageTemperatureUncertainty"])
b = df.withColumn("NuevaCol", df["AverageTemperature"] + df["AverageTemperatureUncertainty"])
dfPrep = dfCleanYear.withColumn(a).withColumn(b)
前两行没问题。错误来自第三个。此行有两个问题:
withColumn
语法应该是dataframe.withColumn("New_col_name", expression)
,这里括号里只有一个参数
- 你在这里想要的是从一个数据帧
df
中取出一列并添加到另一个数据帧 dfCleanYear
。所以,你应该使用 join
,而不是 withColumn
。
点赞(未测试):
df = df.withColumn("NuevaCol_A", df["AverageTemperature"] - df["AverageTemperatureUncertainty"])
df = df.withColumn("NuevaCol_B", df["AverageTemperature"] + df["AverageTemperatureUncertainty"])
dfPrep = dfCleanYear.join(df, "KEY")
我正在尝试在 Databricks 中创建 2 列,这是减去 2 列的值并添加这 2 列的值的结果。
这是我输入的代码。
dfPrep = dfCleanYear.withColumn(df.withColumn("NuevaCol", df["AverageTemperature"] - df["AverageTemperatureUncertainty"])).withColumn(df.withColumn("NuevaCol", df["AverageTemperature"] + df["AverageTemperatureUncertainty"]))
dfPrep.show()
这就是错误。
类型错误:withColumn() 恰好接受 3 个参数(给定 2 个)
你知道缺少哪个参数吗?
谢谢
不清楚您使用的是哪个 Spark version/flavour。但是 DataBricks 文档通常对此很清楚,.withColumn
调用中的第一个参数应该是 DataFrame。
示例:https://docs.azuredatabricks.net/spark/1.6/sparkr/functions/withColumn.html
Syntax:
withColumn(df, “newColName”, colExpr)
Parameters:
df: Any SparkR DataFrame
newColName: String, name of new column to be added
colExpr: Column Expression
我们可以重写您的代码:
a = df.withColumn("NuevaCol", df["AverageTemperature"] - df["AverageTemperatureUncertainty"])
b = df.withColumn("NuevaCol", df["AverageTemperature"] + df["AverageTemperatureUncertainty"])
dfPrep = dfCleanYear.withColumn(a).withColumn(b)
前两行没问题。错误来自第三个。此行有两个问题:
withColumn
语法应该是dataframe.withColumn("New_col_name", expression)
,这里括号里只有一个参数- 你在这里想要的是从一个数据帧
df
中取出一列并添加到另一个数据帧dfCleanYear
。所以,你应该使用join
,而不是withColumn
。
点赞(未测试):
df = df.withColumn("NuevaCol_A", df["AverageTemperature"] - df["AverageTemperatureUncertainty"])
df = df.withColumn("NuevaCol_B", df["AverageTemperature"] + df["AverageTemperatureUncertainty"])
dfPrep = dfCleanYear.join(df, "KEY")