我有一个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)))
添加回答
举报
0/150
提交
取消