pyspark - 从 pyspark 列中删除十进制值
问题描述
我有一个 pyspark 数据框列,其中混合了一些值,比如一些是字符串,一些是如下数字 -
Source_ids
abc_123
1234.0
345
abc_cad
K-123
540.0
456.0
我想在任何地方删除小数部分。所以结果应该是
Source_ids
abc_123
1234
345
abc_cad
K-123
540
456
我们不能将此列设为长类型,因为它也有文本。我怎样才能实现它?
解决方案
使用regexp_replace
. 替换\..*$
为空字符串''
。
此表达式查找dot
并替换之后的所有内容。
from pyspark.sql.functions import *
df.withColumn("Source_ids", regexp_replace('Source_ids', '\..*$', '')).show()
推荐阅读
- python - 从列中的日期时间对象创建范围
- angular - 子组件事件发射器未在父组件中触发
- kotlin - 简单的强化学习示例
- python - 使用 pandas 应用日期和日期偏移
- java - 为什么 jpa/hibernate 在保存从“findBy”方法检索的实体时仍然执行“select-then-update”,似乎它已分离
- mobile - Monaco 支持 Classic Edge、Edge、Chrome、Firefox、Safari 和 Opera,但不支持移动浏览器和 Web 框架
- javascript - 有没有办法在 Svelte 中将 props 声明为可选
- php - 在 laravel 资产()方法中需要帮助
- excel - 在数组中获取最近 6 个月的名称
- android - com.android.volley.AuthFailureError 在 -Android 中使用 GET 方法