Я работаю над набором данных из ~ 100 тыс. Строк в PySpark, и я не хочу конвертировать его в Pandas.Данные о веб-кликах содержат строковые переменные и считываются из файла .snappy.orc в корзине Amazon S3 через spark.read.orc(...)
.
Преобразование выполняется слишком медленно для моего приложения (по причинам, очень хорошо объясненным здесь для stackoverflow), и поэтому я попытался уменьшить выборку моего искрового DataFrame до одной десятой - набор данных настолько велик, что статистическийанализ, который мне нужно сделать, вероятно, все еще в силе.Однако мне нужно повторить анализ для 5000 аналогичных наборов данных, для чего ускорить процесс.
Что меня удивило, так это то, что время выполнения: df.sample(false, 0.1).toPandas()
точно такое же, как df.toPandas()
(около 180 с)и поэтому я не получаю сокращение времени работы, на которое я надеялся.
Я подозреваю, что это может быть вопрос вставки .cache()
или .collect()
, но я не могу придумать, как правильно в него вписаться.