Какие функции я должен использовать для работы с файлом XDF в HDFS?
У меня есть файл.xdf в кластере HDFS, который составляет около 10 ГБ с почти 70 столбцами. Я хочу прочитать его в объект R, чтобы я мог выполнить некоторые преобразования и манипуляции. Я попытался Google об этом и пришел с двумя функциями:
rxReadXdf
rxXdfToDataFrame
Может ли кто-нибудь сказать мне предпочтительную функцию для этого, так как я хочу читать данные и выполнять преобразование параллельно на каждом узле кластера?
Также, если я читаю и выполняю преобразование в чанках, нужно ли объединять вывод каждого чанка?
Заранее благодарны за Вашу помощь.
Ура, Амит
1 ответ
Обратите внимание, что rxReadXdf
а также rxXdfToDataFrame
иметь разные аргументы и делать немного разные вещи:
rxReadXdf
имеет аргумент numRows, поэтому используйте его, если вы хотите прочитать первые 1000 (скажем) строк набора данныхrxXdfToDataFrame
поддерживает rxTransforms, поэтому используйте это, если вы хотите манипулировать своими данными в дополнение к чтениюrxXdfToDataFrame
также имеет аргумент maxRowsByCols, который является еще одним способом ограничения размера ввода
Так что в вашем случае вы хотите использовать rxXdfToDataFrame
так как вы преобразовываете данные в дополнение к чтению. rxReadXdf
немного быстрее в локальном вычислительном контексте, если вы просто хотите прочитать данные (без преобразований). Вероятно, это также верно для HDFS, но я не проверял это.
Тем не менее, вы уверены, что хотите прочитать данные во фрейм данных? Ты можешь использовать rxDataStep
запустить (почти) произвольный код R в файле xdf, оставив при этом ваши данные в этом формате. Смотрите связанную страницу документации, чтобы узнать, как использовать аргументы transforms.