调整 Pyspark 数据框中 CSV 文件数据的错误数据

Adjusting incorrect data of a CSV file data in a Pyspark dataframe

我正在尝试将 CSV 文件读入 Pyspark 中的数据帧,但我有一个包含混合数据的 CSV 文件。它的部分数据属于它的相邻列。有什么方法可以修改 python 中的数据帧以获得预期的输出数据帧。

CSV 样本

ID   , Name  
'1'  , 'Alice'
'2B' , 'ob'
'3Ri' , 'chard'

预期输出

ID, Name  
1, 'Alice'
2, 'Bob'
3, 'Richard' 

您可以使用 pyspark.sql.functions 中的 regexp_extract 来做到这一点。

我的方法是这样的:

#read with a different separator so df generated with a single column
df = spark.read.csv('filename',header=True,sep='|')

#renamed the column name with irr (to make it easy to call)
newcolnames=['irr']
for c,n in zip(df.columns,newcolnames):
    df=df.withColumnRenamed(c,n)

df.withColumn('ID',regexp_extract(df['irr'],r'(\d+)',1))
  .withColumn('Name',regexp_extract(df['irr'],'your_regex_pattern',0))
  .drop(df['irr']).show()