【发布时间】:2020-12-31 06:42:25
【问题描述】:
当我尝试使用 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|
+---+--------------+---+
【问题讨论】:
-
>>Spark 正在读取源文件中不存在的最后一列 .... 因为您有“|”在每一列的行尾。将其读取为 textFile 并通过管道拆分数据并溢出元组数据,不包括拆分中的最后一个索引值
-
在创建数据框后删除最后一列。
-
你的问题解决了吗?
标签: scala dataframe csv apache-spark pyspark