В Scala - не JAVA Spark, не очень хорошая вещь imho - так что вы можете конвертировать, используя RDD и DF.Использование DF может стать лучше для каждой строки.Не так сложно конвертировать, но в ноутбуках Java не распространена.
Ввод
cardno1,cardno2,age,name,address,ssn
cardno1,,age,name,address,ssn
cardno2,,age,name,address,ssn
cardno3,,age,name,address,ssn
cardno4,cardno5,age2,name2,address2,ssn2
cardno4,,age2,name2,address2,ssn2
cardno5,,age2,name2,address2,ssn2
Код
val filesRDD = sc.textFile("/FileStore/tables/so.txt",5)
val linesRDD = filesRDD.map(_.split(",")).filter(c => !"".equalsIgnoreCase(c(1).trim)).map(entries=> (entries(0),entries(1),entries(2),entries(3),entries(4),entries(5)))
val linesRDD2_first = linesRDD.map { case (v1, v2, v3, v4, v5, v6) => (v1, v3, v4, v5, v6) }
val linesRDD2_second = linesRDD.map { case (v1, v2, v3, v4, v5, v6) => (v2, v3, v4, v5, v6) }
val df1 = linesRDD2_first.toDF()
val df2 = linesRDD2_second.toDF()
val df3 = df1.union(df2).toDF("cardno", "age", "name", "address", "ssn")
df3.show(false)
Вывод в формате Dataframe
+-------+----+-----+--------+----+
|cardno |age |name |address |ssn |
+-------+----+-----+--------+----+
|cardno1|age |name |address |ssn |
|cardno4|age2|name2|address2|ssn2|
|cardno2|age |name |address |ssn |
|cardno5|age2|name2|address2|ssn2|
+-------+----+-----+--------+----+