簡體   English   中英

Spark dataframe 讀取 CSV 后具有奇怪的值

[英]Spark dataframe with strange values after reading CSV

來自這里,我試圖從 Pyspark 中的這個數據集中讀取正確的值。 我使用df = spark.read.csv("hashtag_donaldtrump.csv", header=True, multiLine=True)取得了很好的進展,但是現在我在某些單元格中有一些奇怪的值,正如您在這張圖片中看到的那樣(最后幾行):

在此處輸入圖像描述

你知道我怎樣才能擺脫它們嗎? 否則,如何使用其他程序讀取 CSV 格式? 我很難使用像 Vim 或 Nano 這樣的文本編輯器並嘗試猜測錯誤在哪里。 謝謝!

Spark 似乎很難閱讀這一行:

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

因為有三個雙引號。 However pandas seem to understand that well, so as a workaround, you can use pandas to read the csv file first, and convert to a Spark dataframe. 通常不建議這樣做,因為涉及的開銷很大,但是對於這個小的 csv 文件,性能損失應該是可以接受的。

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

replace用於將 pandas dataframe 中的nan替換為None Spark 認為nan是一個浮點數,當字符串類型的列中有nan時它會感到困惑。

如果文件對於 pandas 來說太大,那么您可以考慮使用mode='DROPMALFORMED'刪除 Spark 無法解析的那些行:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM