Корректировка неверных данных в файле CSV в фрейме данных Pyspark - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь прочитать файл CSV в фрейм данных в Pyspark, но у меня есть файл CSV, который содержит смешанные данные. Часть его данных принадлежит соседнему столбцу. Есть ли способ изменить фрейм данных в python, чтобы получить выходной фрейм данных, как ожидалось.

Образец CSV

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

Ожидаемый результат

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

1 Ответ

0 голосов
/ 26 января 2020

Вы можете сделать это, используя regexp_extract из pyspark.sql.functions.

Мой подход будет выглядеть примерно так:

#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()
...