我正在使用 .Pandas 数据框将数据保存到 csv 文件(包含 318477 行)df.to_csv("preprocessed_data.csv")。当我使用以下命令将此文件加载到另一个笔记本中时:
df = pd.read_csv("preprocessed_data.csv")
len(df)
# out: 318477
Run Code Online (Sandbox Code Playgroud)
行数符合预期。但是,当我尝试使用 PySpark 加载数据集时:
spark_df = spark.read.format("csv")
.option("header", "true")
.option("mode", "DROPMALFORMED")
.load("preprocessed_data.csv")
spark_df.count()
# out: 6422020
Run Code Online (Sandbox Code Playgroud)
或者
df_test = spark.sql("SELECT * FROM csv.`preprocessed_data.csv`")
df_test.count()
# out: 6422020
Run Code Online (Sandbox Code Playgroud)
行数不正确。它读取的行数 6422020 是 csv 文件中的行数。由于有些行的内容跨越多行(即https://i.stack.imgur.com/PwvCg.jpg)
我怎么解决这个问题?我是否需要以某种方式保存 csv,并且在任何文本中都没有换行符,或者我可以更具体地指定 PySpark 中的 csv 读数吗?
这是我上一个问题的继续,我现在了解问题更多链接
CSV 文件中的行:
120,teacher industrial design technology mabel park state high school,teach queensland,2018-10-07,brisbane,southern suburbs logan,education training,teaching secondary,mabel park state high school invites applications for …Run Code Online (Sandbox Code Playgroud)