Почему метод подсчета кадров данных дает неверный результат при чтении CSV с многострочными строками?

#apache-spark #pyspark

#apache-искра #пыспарк

Вопрос:

У меня есть CSV-файл со следующим содержимым

 "","b","c" "","""b","""c" ""," b","c"  

который я прочитал со следующим кодом:

 path = 'xyz.csv' df = (  spark.read  .format('csv')  .option('multiline', True)  .option('escape', '"')  .load(path) )  

Выполнение df.head(5) приводит к ожидаемому результату:

 [Row(_c0=None, _c1='b', _c2='c'),  Row(_c0=None, _c1='"b', _c2='"c'),  Row(_c0=None, _c1='nb', _c2='c')]  

Однако:

 df.unpersist() print(df.count()) # Output: 4  df.cache() print(df.count()) # Output: 3  

Почему count функция выдает неверный результат, когда фрейм данных не загружается в память?