записать большой файл RDS в sparklyr. - PullRequest
1 голос
/ 08 октября 2019

Я пытаюсь преобразовать кадр данных R, загруженный в кирпичи данных, в кадр данных sparklyr, но я думаю, что обычно используемая функция copy_to не справляется с размером файла. Файлы, которые мне нужно конвертировать, варьируются от 780 МБ до 4,7 ГБ.

Код:

chloedf<-copy_to(sc,Chloe)

и возвращена ошибка:

Error in writeBin(utfVal, con, endian = "big", useBytes = TRUE) : Error in writeBin(utfVal, con, endian = "big", useBytes = TRUE) : 
  attempting to add too many elements to raw vector
Error in writeBin(utfVal, con, endian = "big", useBytes = TRUE) : 
  attempting to add too many elements to raw vector
In addition: Warning message:
closing unused connection 11 (raw()) 

1 Ответ

0 голосов
/ 20 октября 2019

Похоже, copy_to() не предназначен для больших наборов данных .

Здесь есть несколько вариантов.

  1. Вместо формата rds сохраните исходный кадр данных R в формате CSV. Затем вы можете прочитать его непосредственно в Spark, используя spark_read_csv(sc, "/path/to/mycsv.csv"). Это самый простой способ.

  2. Попробуйте вместо этого использовать SparkR::createDataFrame().

  3. Установите Apache Arrow на кластере Databricks и повторите попытку copy_to()команда. Здесь - некоторые инструкции по настройке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...