在中读取以下csv数据时遇到一些问题 UTF-16
:
FullName, FullLabel, Type
TEST.slice, "Consideration":"Verde (Spar Verde, Fonte Verde)", Test,
据我所知,这对读者来说应该不是问题,因为有一个 quote
参数来处理。
df = spark.read.csv(file_path, header=True, encoding='UTF-16', quote = '"')
但是,这仍然会给我一个不正确的分割:
有什么办法来处理这些案子吗?还是我需要和rdd一起解决?
先谢谢你。
2条答案
按热度按时间628mspwn1#
您可以使用
spark.read.text
然后使用一些正则表达式按逗号拆分值,但忽略引号(您可以看到这篇文章),然后从生成的数组中获取相应的列:更新:
对于中的输入文件
utf-16
,可以替换spark.read.text
通过将文件加载为binaryFiles
然后将结果rdd转换为Dataframe:cqoc49vn2#
下面是另一个选项(如果您觉得简单):
首先将文本文件读取为rdd并替换
":"
与~:~
并保存文本文件。接下来,读取临时路径并替换
~:~
与":"
再说一次,但这次是作为一个df。