Pyspark SQL表达式与when()作为案例语句

B_Miner

我在上一个查询中创建了一个名为v1的字段。然后,我尝试从中创建一个新的派生字段。

一种方法有效,另一种无效。我不明白,我希望他们是等效的。

这有效:

df = df.withColumn("outcome",expr("case when v1 = 0 then 1 when v1 > 0 then 2 else 0 end"))

这将失败:

df = df.withColumn("outcome", F.when(F.col("v1") == 0, 1)
      .F.when(F.col("v1") >0, 2)
      .otherwise(0))

错误:

Py4JJavaError: An error occurred while calling o520.when.
: java.lang.IllegalArgumentException: when() can only be applied on a Column previously generated by when() function
皮索尔

您是whenpyspark.sql.functions调用的F,您需要链接when条件(例如F.when().when().when().otherwise()),而无需F再次调用它

只需将代码更改为:

df = df.withColumn("outcome", F.when(F.col("v1") == 0, 1)
      .when(F.col("v1") >0, 2)
      .otherwise(0))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Pyspark SQL:使用 case when 语句

来自分类Dev

在PySpark中提取几个正则表达式匹配

来自分类Dev

PySpark正则表达式引擎不匹配

来自分类Dev

pyspark通过正则表达式过滤列?

来自分类Dev

pyspark用正则表达式读取csv文件

来自分类Dev

Oracle / SQL多个真实案例语句

来自分类Dev

PySpark或SQL:消耗合并

来自分类Dev

Pyspark数据框SQL

来自分类Dev

PySpark sql CASE 失败

来自分类Dev

如何在pyspark中使用正则表达式从字符串中删除星号*

来自分类Dev

使用正则表达式从Pyspark中的描述中获取数量

来自分类Dev

PySpark:使用正则表达式删除空格后的字符-数字组合

来自分类Dev

如何在PySpark中编写条件正则表达式替换?

来自分类Dev

Pyspark-正则表达式-从最后一个括号中提取值

来自分类Dev

在Pyspark中的日期上使用正则表达式功能

来自分类Dev

使用带有正则表达式(Scala?)的字典进行PySpark UDF优化挑战

来自分类Dev

在PySpark中使用正则表达式创建N-Gram

来自分类Dev

Pyspark SparkSQL正则表达式在空格之前获取子字符串

来自分类Dev

根据pyspark或无尾熊中的正则表达式匹配来拆分字符串列

来自分类Dev

pyspark:在lambda表达式中保留一个函数

来自分类Dev

从字符串 PySpark 数据框列中删除正则表达式

来自分类Dev

如何在pyspark中使用groupby的聚合表达式列表?

来自分类Dev

如何在 PySpark 数据帧中提取正则表达式模式的所有实例?

来自分类Dev

PySpark SQL:合并.withColumn调用

来自分类Dev

pyspark sql具有计数

来自分类Dev

在 pyspark 中加载 SQL 查询?

来自分类Dev

提取组数据 PySpark SQL

来自分类Dev

PySpark SQL TRY_CAST?

来自分类Dev

Pyspark:将 pyspark.sql.row 转换为 Dataframe

Related 相关文章

热门标签

归档