当我尝试使用spark和scala读取管道分隔文件时,如下所示:
1|Consumer Goods|101|
2|Marketing|102|
我正在使用命令:
val part = spark.read
.format("com.databricks.spark.csv")
.option("delimiter","|")
.load("file_name")
我得到的结果是:
+---+--------------+---+----+
|_c0| _c1|_c2| _c3|
+---+--------------+---+----+
| 1|Consumer Goods|101|null|
| 2| Marketing|102|null|
+---+--------------+---+----+
spark正在读取源文件中不存在的最后一列,因为分隔符被称为管道。有没有其他方法可以让我得到以下结果:
+---+--------------+---+
|_c0| _c1|_c2|
+---+--------------+---+
| 1|Consumer Goods|101|
| 2| Marketing|102|
+---+--------------+---+
2条答案
按热度按时间1szpjjfi1#
您可以使用以下选项
kninwzqo2#
一种解决方案是简单地删除最后一列,如下所示:
另一种解决方案是将文件作为文本文件读取,然后像这样自己拆分: