Я читаю файл CSV через PySpark. Это файл с разделителями кареткой.
Имеет 5 столбцов. Мне нужно только 3 столбца.
rdd = sc.textFile("test.csv").map(lambda x: x.split("^")).filter(lambda x: len(x)>1).map(lambda x: (x[0], x[2], x[3]))
print rdd.take(5)
Как показано ниже, данные в файле csv содержат многострочные данные в 4-й записи, последней, кроме одного столбца. Из-за этого, хотя файл имеет только 5 записей, искра обрабатывает его как 6 записей. Поэтому я столкнулся с ошибкой индекса вне диапазона.
Данные в файле .csv:
a1^b1^c1^d1^e1
a2^b2^c2^d2^e2
a3^b3^c3^d3^e3
a4^b4^c4^d4 is
multiline^e4
a5^b5^c5^d5^e5
Как включить multiline
при создании от rdd
до sc.textFile()
?