我正在编写一个
python spark实用程序来读取文件并进行一些转换.
文件有大量数据(最大12GB).我使用sc.textFile来创建RDD,逻辑是将每行从RDD传递给map函数,map函数依次将行拆分为“,”并运行一些数据转换(根据映射更改字段值).
文件有大量数据(最大12GB).我使用sc.textFile来创建RDD,逻辑是将每行从RDD传递给map函数,map函数依次将行拆分为“,”并运行一些数据转换(根据映射更改字段值).
Sample line from the file.
0014164,02,031270,09,1,0000000000,134314,Mobile,ce87862158eb0dff3023e16850f0417a-cs31,584e2cd63057b7ed,Privé,Gossip
由于值“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行终止符”.