【问题标题】:Spark- consecutive pipe delimiters being read as oneSpark-连续管道分隔符被读为一个
【发布时间】:2020-02-27 13:43:57
【问题描述】:
我有一个包含空行列的文件,例如:
1|2|abc||||random|12|||
1|2||||random|12|||151|
在分隔符选项设置为 | 的情况下在 spark 中读取此内容,连续的管道被读取为一个 |并且数据向左移动,或者在某些情况下我的插入失败。
我找到了以下相关链接,但没有关于 spark 的内容。
https://kb.iu.edu/d/bcjf
如何在 spark 中正确读取这样的文件?
【问题讨论】:
标签:
file
apache-spark
delimiter
【解决方案1】:
确保您正在使用csv 格式读取文件并将分隔符选项指定为"|"。
Example:
spark.read.option("delimiter","|").format("csv").load("t.txt").show()
+---+---+----+----+----+------+------+----+----+----+----+
|_c0|_c1| _c2| _c3| _c4| _c5| _c6| _c7| _c8| _c9|_c10|
+---+---+----+----+----+------+------+----+----+----+----+
| 1| 2| abc|null|null| null|random| 12|null|null|null|
| 1| 2|null|null|null|random| 12|null|null| 151|null|
+---+---+----+----+----+------+------+----+----+----+----+
似乎没有缺少列顺序!