PySpark中使用RDD.map解析XML时列表元素格式异常问题排查
PySpark XML解析格式异常原因
- 序列化处理不一致:本地写入txt文件时,你应该是主动调用了
json.dumps()这类方法,把xmltodict转换后的字典序列化为标准JSON格式;但在Notebook中直接输出RDD元素时,PySpark默认用Python的repr()函数来展示对象,会把字典转成Python字面量格式(键值用=,列表元素以字符串字面量形式显示),而非标准JSON。 - 对象展示逻辑差异:xmltodict返回的是字典类对象,Notebook中直接打印RDD的
collect()结果时,用的是Python默认的对象字符串化规则,不会自动做JSON序列化;而本地写入文件时你做了显式的JSON转换,所以两者输出格式完全不同。 - PySpark输出机制特性:Notebook里展示RDD内容时,优先用Python原生的对象表示方式来输出,目的是让你看到对象的实际类型结构;而本地文件输出是你主动做了格式转换,所以能得到符合预期的JSON。
内容的提问来源于stack exchange,提问作者dja
相关产品推荐
相关产品推荐

