Исходные данные выглядят так, как показано ниже. В одном из полей 4-й записи есть многострочная строка.
i1|j1|k1|l1|m1
i2|j2|k2|l2|m2
i3|j3|k3|l3|m3
i4|j4|k4|"l4 is
multiline data
multiline data"|m4
i5|j5|k5|l5|m5
Я читаю этот файл через sc.wholeTextFiles
rdd= sc.wholeTextFiles("file.csv").flatMap(lambda x: x[1].split("\n"))
print rdd.take(100)
print rdd.count()
Выход rdd.take(100)
:
[u'i1|j1|k1|l1|m1', u'i2|j2|k2|l2|m2', u'i3|j3|k3|l3|m3', u'i4|j4|k4|"l4 is', u'multiline data', u'multiline data"|m4', u'i5|j5|k5|l5|m5', u'']
Выход rdd.count()
8
Проблема в том, что данные multiline
считаются новой записью. За счет чего количество также увеличивается. Как я могу обработать эти multiline
данные как одно строковое значение столбца (которое начинается с l4
)?