Измените владельца файла на root из пряжи, созданной приложением pyspark

Файл csv создается приложением Spark (yarn), которое развертывается в кластерном режиме. Я сохраняю файл в hdfs, используя следующий код.

 def run_commands(self, arg_list):
    proc = Popen(arg_list, stdin=PIPE, bufsize=-1)
        output, error = proc.communicate()
    if (proc.returncode != 0):
        print('Running system command: {0}'.format(' '.join(arg_list)))
            raise Exception("Unable to find path to save output file")
    return output, error

  arg_list = ["hdfs", "dfs", "-put", "-f", filename, hdfs_path]
  output, error = self.run_commands(arg_list)

Но владельцем файла по умолчанию является пряжа. Итак, я попытался изменить владельца на root с помощью команд hdfs, что привело к

  arg_list = ["hdfs", "dfs", "-chown", "root", filename, hdfs_path]
  output, error = self.run_commands(arg_list)
chown: changing ownership of 'filename.csv': Non-super user cannot change owner
Running system command: hdfs dfs -chown root filename.csv

Есть ли способ изменить право собственности на root с yarn с помощью кода или есть способ создать файл с root-правами непосредственно в приложении Spark. Я застрял на этом этапе.

0 ответов

Другие вопросы по тегам