Вот мой взгляд на очистку таких записей, мы обычно сталкиваемся с такими ситуациями:
а. Аномалия в данных, где файл при создании не просматривался, если "," является лучшим разделителем для столбцов.
Вот мое решение по делу:
Решение a: В таких случаях мы хотели бы, чтобы процесс идентифицировался как часть очистки данных, если эта запись является квалифицированной записью. Остальные записи, если они будут перенаправлены в неверный файл / коллекцию, дадут возможность согласовать такие записи.
Ниже приведена структура моего набора данных (product_id, product_name, unit_price)
1,product-1,10
2,product-2,20
3,product,3,30
В приведенном выше случае продукт 3 должен читаться как продукт 3, который мог быть опечаткой при регистрации продукта. В таком случае, приведенный ниже пример будет работать.
>>> tf=open("C:/users/ip2134/pyspark_practice/test_file.txt")
>>> trec=tf.read().splitlines()
>>> for rec in trec:
... if rec.count(",") == 2:
... trec_clean.append(rec)
... else:
... trec_bad.append(rec)
...
>>> trec_clean
['1,product-1,10', '2,product-2,20']
>>> trec_bad
['3,product,3,30']
>>> trec
['1,product-1,10', '2,product-2,20','3,product,3,30']
Другой вариант решения этой проблемы - попытаться определить, будет ли skipinitialspace = True работать для анализа столбцов.
(Ref: Python анализирует CSV, игнорируя запятую с двойными кавычками )