【发布时间】:2021-06-07 11:31:18
【问题描述】:
我有一个非常大的表格,代表积分(>3000 万积分)。 它可以有两个或树列代表 x,y,z
不幸的是,其中一些列可以包含字符串('nan'、'nulo'、'vazio'等) 它们可以在文件之间更改,但在表中是不变的
我需要一种方法来删除这些字符串并将它们替换为空值或删除行
我所做的是在图片和下面的代码中,有更好的原因吗?更灵活?(此代码仅适用于 3d)
def import_file(self,file_path:str,sep:str=',',null_values:str=''):
#read table
table = self.spark.read.load(path=file_path, \
format='csv', \
sep=sep, \
header=False).toDF('x','y','z')
#change the letters to ''
table.withColumn('x',regexp_replace('x','[a-z]',''))
table.withColumn('y',regexp_replace('z','[a-z]',''))
table.withColumn('z',regexp_replace('z','[a-z]',''))
#replace '' for nulls or TODO:remove columns
table.replace('',None)
return table
【问题讨论】:
-
字母本质上是指字符串,对吗?
-
你应该发布代码而不是图像
-
@Vaebhav 是的,这里有点晚了,感谢您的更正