PySpark SQL TRY_CAST?

沉默的

我在 Dataframe 中有数据,所有列都是字符串。现在,列中的一些数据是数字,所以我可以转换为浮点数。其他行实际上包含我不想转换的字符串。

所以我一直在寻找像 try_cast 这样的东西,并且已经尝试在上面构建一些东西,.when().otherwise()但到目前为止没有成功。

casted = data.select(when(col("Value").cast("float").isNotNull(), col("Value").cast("float")).otherwise(col("Value")))

这是行不通的,它永远不会在最后施放。

这样的事情通常是可能的(以没有 UDF 等的高性能方式)?

马留斯

spark 中不能有两种类型的列:浮点数或字符串。这就是为什么您的列始终具有string类型(因为它可以同时包含:字符串和浮点数)。

您的代码所做的是:如果Value列中的数字不适合浮点数,它将被转换为浮点数,然后转换为字符串(尝试使用 >6 位小数)。据我所知 TRY_CAST 转换为 value 或 null(至少在 SQL Server 中),所以这正是 sparkcast所做的。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

字符串或二进制数据将被截断:TRY_CAST未捕获错误

来自分类Dev

PySpark或SQL:消耗合并

来自分类Dev

Pyspark数据框SQL

来自分类Dev

PySpark sql CASE 失败

来自分类Dev

PySpark SQL:合并.withColumn调用

来自分类Dev

pyspark sql具有计数

来自分类Dev

在 pyspark 中加载 SQL 查询?

来自分类Dev

提取组数据 PySpark SQL

来自分类Dev

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

来自分类Dev

Pyspark 忽略 pyspark-sql-functions 中数据帧的过滤

来自分类Dev

用PySpark迭代SQL.Row的列表

来自分类Dev

使用类似SQL的IN子句过滤Pyspark DataFrame

来自分类常见问题

Pyspark:Spark SQL中的缓存方法

来自分类Dev

Win7的Pyspark的SQL utils的IllegalArgumentException

来自分类Dev

PySpark SQL中的用户定义的聚合函数

来自分类Dev

如何在PySpark中运行.sql文件

来自分类Dev

pyspark sql:如何计算多个条件的行

来自分类Dev

Pyspark:Spark SQL中的缓存方法

来自分类Dev

将查询从SQL转换为pyspark

来自分类Dev

用PySpark迭代SQL.Row的列表

来自分类Dev

PySpark SQL中的LEFT和RIGHT函数

来自分类Dev

如何在pyspark SQL中保存表?

来自分类Dev

划分pyspark SQL中的所有列

来自分类Dev

Pyspark SQL:使用 case when 语句

来自分类Dev

Pyspark``for''循环无法使用.filter()正确过滤pyspark-sql数据帧

来自分类Dev

使用StructType为Pyspark.sql设置架构时的语法

来自分类Dev

您需要在Pyspark SQL中的哪里使用lit()?

来自分类Dev

从pyspark.sql中的列表创建数据框

来自分类Dev

在AWS EMR的zip文件内提交pyspark支持的sql文件