我正在編寫一個python spark實用程序來讀取文件並進行一些轉換。 文件有大量的數據(高達12GB)。我使用sc.textFile創建一個RDD,邏輯是將每行從RDD傳遞給一個映射函數,該映射函數依次將行分割爲「,」並執行一些數據轉換(根據映射更改字段值)。PySpark如何讀取具有多個編碼的字符串的文件
從文件中取樣線。 0014164,02,031270,09,1,0,0,0000000000,134314,移動,ce87862158eb0dff3023e16850f0417a-cs31,584e2cd63057b7ed,Privé的,緋聞
由於價值觀 「貴賓俱樂部」 我得到的UnicodeDecodeError。我想下面來解析這個值:
if isinstance(v[12],basestring):
v[12] = v[12].encode('utf8')
else:
v[12] = unicode(v[12]).encode('utf8')
但是當我將數據寫回文件,這個領域被翻譯爲「Priv�」。在Linux源文件類型上的 顯示爲「ISO-8859文本,非常長的行,帶有CRLF行結束符」。
有人可以讓我知道正確的方式在火花閱讀/寫混合編碼的文件請。
嗨zero323,感謝您的快速響應。我嘗試過,但是當我寫入文件時,我看到「Privï」的價值, – Harish
您的情況下編碼可能不同,'iso-8859-1'就是一個例子。 – zero323