如何用PySpark/Python逐行读取CSV并移除数据类型不匹配的行
清洗CSV文件:移除数据类型不匹配的记录
我手里有存在记录错位问题的CSV文件,已经确定了各列的推断/最终数据类型。需要逐行读取文件,将每列的数据类型与推断的最终类型对比,移除类型不匹配的记录,把有效行保存到valid_record_csv文件中。
具体处理步骤
- 逐行读取CSV文件
- 检测每行中各列的数据类型,与预设的推断列数据类型做匹配校验
- 只要有任意一列数据类型不匹配,就移除该行;所有列都符合类型要求的有效行,保存到
valid_record_csv文件
预设的推断列数据类型
- name: string
- date: date
- phone: long
- col1: integer
- col2: double
示例输入CSV
Name date phone col1 col2 124 PANAMA 440894563 0.9800 BB 2022-9-23 449035667 9.08765 BB GRENADA BBCC PASS
示例输出CSV
注:其中一列为空/空白,但其对应的推断数据类型为integer,另一列为double类型
NAME DATE PHONE col1 col2 BB 2022 449035667 9.08765
内容的提问来源于stack exchange,提问作者Anos
相关产品推荐
相关产品推荐

