读取CSV后使用奇怪值触发数据帧

2024-06-26 17:38:57 发布

您现在位置:Python中文网/ 问答频道 /正文

来自here,我试图在Pyspark中从this dataset读取正确的值。我在使用df = spark.read.csv("hashtag_donaldtrump.csv", header=True, multiLine=True)方面取得了很大的进步,但是现在我在一些单元格中有一些奇怪的值,正如您在这张图片(最后一行)中所看到的:

enter image description here

你知道我怎样才能摆脱他们吗?或者,如何使用其他程序读取CSV格式?我很难使用Vim或Nano这样的文本编辑器来猜测错误在哪里。谢谢大家!


Tags: csv程序truedfreadhere图片this
1条回答
网友
1楼 · 发布于 2024-06-26 17:38:57

Spark似乎很难读懂这句话:

2020-10-15 00:00:23,1.3165293165079306e+18,"""IS THIS WRONG??!!"" ...

因为有三个双引号。但是,pandas似乎很了解这一点,因此作为一种解决方法,您可以先使用pandas读取csv文件,然后转换为Spark数据帧。通常不建议这样做,因为这会带来很大的开销,但是对于这个小csv文件,性能影响应该是可以接受的

df = spark.createDataFrame(pd.read_csv('hashtag_donaldtrump.csv').replace({float('nan'): None}))

replace用于在pandas数据帧中将nan替换为None。Spark认为nan是一个浮点数,当字符串类型列中有nan时,它会感到困惑

如果大熊猫的文件太大,那么您可以考虑删除那些不能用{{CD6>}:S/

解析的行。

df = spark.read.csv('hashtag_donaldtrump.csv', header=True, multiLine=True, mode='DROPMALFORMED')

相关问题 更多 >