为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查pyspark数据框中的字符串列是否都是数字

如何检查pyspark数据框中的字符串列是否都是数字

慕娘9325324 2021-09-14 20:41:50
我有一个Dataframe带有strings. 如何检查其中的哪些行是数字。我在 PySpark 的官方文档中找不到任何功能-values = [('25q36',),('75647',),('13864',),('8758K',),('07645',)]df = sqlContext.createDataFrame(values,['ID',])df.show()+-----+|   ID|+-----+|25q36||75647||13864||8758K||07645|+-----+在 Python 中,有一个函数.isDigit()可以返回True或者False是否string只包含数字。预期数据帧 -+-----+-------+|   ID| Value |+-----+-------+|25q36| False ||75647| True  ||13864| True  ||8758K| False ||07645| True  |+-----+-------+我想避免创建一个UDF.
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

如果您愿意,您还可以udf为此目的构建自定义:


from pyspark.sql.types import BooleanType

from pyspark.sql import functions as F


def is_digit(val):

    if val:

        return val.isdigit()

    else:

        return False


is_digit_udf = udf(is_digit, BooleanType())


df = df.withColumn('Value', F.when(is_digit_udf(F.col('ID')), F.lit(True)).otherwise(F.lit(False)))


查看完整回答
反对 回复 2021-09-14
  • 3 回答
  • 0 关注
  • 340 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信