Измените владельца файла на 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. Я застрял на этом этапе.