在 Pyspark 中读取缺少/不完整标头的 CSV

问题描述 投票:0回答:1

我有一个 CSV 文件,第一行如下

姓名 |客户||地址 |别针 XYZ|吉伊 | 23 | 23纽约 | 3001

如可见,它缺少第三列。

使用spark.read.csv读取数据时

df.columns 正在完美读取前两个列标题,然后将丢失的列视为 _C2。

问题:它会自动在以下列的末尾分配数字,例如

地址 3 和引脚 4

如何避免在标题名称末尾获取数字

我尝试从 pandas 读取数据,它将丢失的列作为unknown_2,并在之后使用正确的列名称。

仅在使用spark.read方法时问题仍然存在。

pandas csv pyspark
1个回答
0
投票

您可以使用 pandas 读取 csv,然后将其转换为 Spark 数据框:

import pandas as pd

header = ['Name', 'Customer', 'Address', ...]
df = pd.read_csv(filename, header = None, names = header, skiprows=1)

# Pandas to Spark
df_sp = spark_session.createDataFrame(df_pd)
© www.soinside.com 2019 - 2024. All rights reserved.