我想删除 CSV 文件字段数据中的换行符。 SO /其他地方的多人问了同样的问题。但是,提供的解决方案是在脚本中。我正在寻找 PYTHON 或 Spark(不仅是这两种)等编程语言的解决方案,因为我有相当大的文件。
以前问过关于同一主题的问题:
我有一个大小为 ~1GB 的 CSV 文件,想删除字段数据中的换行符。 CSV 文件的架构动态变化,因此我无法对架构进行硬编码。换行符并不总是出现在逗号之前,它甚至在一个字段中随机出现。
样本数据:
playerID,yearID,gameNum,gameName,teamName,lgID,GP,startingPos
gomezle01,1933,1,Cricket,Team1,NYA,AL,1
ferreri01,1933,2,Hockey,"This is
Team2",BOS,AL,1
gehrilo01,1933,3,"Game name is
Cricket"
,Team3,NYA,AL,1
gehrich01,1933,4,Hockey,"Here it is
Team4",DET,AL,1
dykesji01,1933,5,"Game name is
Hockey"
,"Team name
Team5",CHA,AL,1
预期输出:
playerID,yearID,gameNum,gameName,teamName,lgID,GP,startingPos
gomezle01,1933,1,Cricket,Team1,NYA,AL,1
ferreri01,1933,2,Hockey,"This is Team2",BOS,AL,1
gehrilo01,1933,3,"Game name is Cricket" ,Team3,NYA,AL,1
gehrich01,1933,4,Hockey,"Here it is Team4",DET,AL,1
dykesji01,1933,5,"Game name is Hockey","Team name Team5",CHA,AL,1
换行符可以出现在任何字段的数据中。
编辑: 根据代码截图:
原文由 data_addict 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您使用的是 pyspark ,那么我建议您使用 sparkContext 的
wholeTextFiles
函数来读取文件, 因为您的文件需要作为整个文本来读取以进行适当的解析。使用
wholeTextFiles
阅读后,您应该通过将行尾字符替换为 进行解析,并进行一些额外的格式化,以便将整个文本分解为八个字符串的组。你应该得到输出
如果您想将所有数组 rdd 行转换为行字符串,那么您可以添加
你应该得到