我为从数据帧获取的变量赋值,如下所示:
dfScore = spark.read.format("csv").option("header", "true").load("data.csv")
level = dfScore.where((col("Name") == "Rule1")).select(dfScore ["level"])
然后我有另一个数据帧,我必须向其中添加此级别变量值:
dfJson = spark.read.format("json").load("/mnt/coi/Rule/Rule1.json")
ScoreCal1 = dfJson.where((dfJson["Amount"] > 20000)).select(dfJson["*"])
所以我想在dataframe中创建一个新列,并将level变量指定为新列值。我以以下方式进行,但没有成功:
ScoreCal1 = ScoreCal1.withColumn("Level",lit(level)))
How to assign a variable as new column value in pyspark dataframe ?
从您的代码中我注意到,level似乎是dataframe,而不是一个变量。因此,它抛出了错误
由于您指定如下,它只返回dataframe而不返回变量:
但是,我从代码中了解到,如果新列“Level”的值满足以下条件col(“DataField”)==“Amount”else Null,则希望为新列“Level”赋值,并使用旧列Level的值。如果是这样,您可以使用以下when条件编写代码:
相关问题 更多 >
编程相关推荐