Spark читает CSV - это ленивая операция? - PullRequest
1 голос
/ 11 октября 2019

Я читал некоторые ресурсы, утверждая, что операции чтения Spark обычно ленивы. Но я выполнил несколько заданий, которые заняли много времени на этапе чтения CSV. Затем я прочитал эту статью о том, что чтение csv - это энергичная операция [1]. У вас есть более точный ответ со ссылкой? Спасибо!

1. https://towardsdatascience.com/a-brief-introduction-to-pyspark-ff4284701873

Попробуйте свести к минимуму активные операции: чтобы ваш конвейер был настолько масштабируемым, насколько это возможно, лучше избегать активных операций, которые вытягивают полные кадры данныхв память. Я заметил, что чтение в CSV - это сложная операция, и моя задача заключается в том, чтобы сохранить фрейм данных в виде паркета, а затем перезагрузить его из паркета для создания более масштабируемых конвейеров.

1 Ответ

2 голосов
/ 11 октября 2019

После прочтения исходного кода кажется, что чтение CSV лениво, если опция inferSchema отключена:

Если схема не указана с использованием функции schema и опция inferSchema включена, эта функцияпроходит через вход один раз, чтобы определить схему ввода.

Если схема не указана с использованием функции schema и опция inferSchema отключена, столбцы определяются как строковые типы и считываются только в первой строке. чтобы определить имена и количество полей.

Если для параметра forceceSchema установлено значение false, проверяется только заголовок CSV в первой строке на соответствие указанной или предполагаемой схеме.

...