У меня есть файл формата csv, и он разделен символом разделителя "|".И набор данных имеет 2 столбца, как показано ниже.
Column1|Column2
1|Name_a
2|Name_b
Но иногда мы получаем только одно значение столбца, а другое отсутствует, как показано ниже
Column1|Column2
1|Name_a
2|Name_b
3
4
5|Name_c
6
7|Name_f
Таким образом, любая строка, имеющая несоответствующий столбец №, являетсядля нас в качестве мусора в приведенном выше примере это будут строки со значением столбца 3, 4, and 6
, и мы хотим отбросить эти строки.Есть ли прямой способ, которым я могу отбросить эти строки, без исключения при чтении данных из spark-shell, как показано ниже.
val readFile = spark.read.option("delimiter", "|").csv("File.csv").toDF(Seq("Column1", "Column2"): _*)
Когда мы пытаемся прочитать файл, мы получаем следующее исключение.
java.lang.IllegalArgumentException: requirement failed: The number of columns doesn't match.
Old column names (1): _c0
New column names (2): Column1, Column2
at scala.Predef$.require(Predef.scala:224)
at org.apache.spark.sql.Dataset.toDF(Dataset.scala:435)
... 49 elided