2016-09-12 1 views
0

Я пытаюсь написать содержимое объекта в файл в hdfs, используя python. Для этого я нашел hdfs API, реализованный в python под названием Pydoop. Читая API, я могу легко использовать метод pydoop dump() для записи содержимого в файл по пути hdfs, но не видел никакого метода, например append(), который мог бы добавить новый контент в старый файл. Я знаю, что это возможно, поскольку я нашел синтаксис командной строки для hdfs, который делает это, но думал об использовании pydoop для этого. Любая помощь будет оценена. СпасибоЕсть ли способ добавить данные в файл hdfs с помощью Pydoop?

+0

Файлы HDFS на самом деле не предназначены для присоединения. Почему вы не можете извлечь файл, написать его локально, а затем оттолкнуть его? –

+0

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

+0

Хорошо, а затем вызовите функцию командной строки из Python –

ответ

0

Не использовали Pydoop, но это читается так же, как API Python для добавления в обычный файл.

from pydoop import hdfs 

with hdfs.open('/path/to/file', 'a') as f: 
    f.write('bla') 
+0

Я не совсем уверен, если разрешен режим «a» для метода open() pydoop hdfs api или нет. Документация не указывает ничего, кроме значения по умолчанию «r». – Ujwal

+0

Хорошо, дайте мне знать, что вы узнали. У меня нет машины, на которой я могу протестировать прямо сейчас –