Как создать фиктивный (0 байт) файл HDFS в Pyspark - PullRequest
1 голос
/ 24 июня 2019

Я ищу утилиту python, которая позволяет динамически создавать фиктивный файл в HDFS, не затрагивая локальную файловую систему.

Эксперты, у меня есть простое требование, когда мне нужно создать фиктивный (0 байт) файл в HDFS в коде Pyspark. В основном я проверяю, существует ли файл x.lock (0 байт) в HDFS, и если это так, это означает, что мне нужно дождаться завершения другого процесса (который его создал) и удалить его. Если его не существует, моя работа создаст его и продолжит выполнение, а в конце удалит.

1 Ответ

1 голос
/ 24 июня 2019

Используйте следующий собственный соединитель pythonhdfs: https://wesmckinney.com/blog/python-hdfs-interfaces/

Попробуйте следующие решения (libhdfs или libhdfs3):

from pyarrow import HdfsClient
# Using libhdfs
hdfs = HdfsClient(host, port, username, driver='libhdfs') 
# Using libhdfs3
hdfs_alt = HdfsClient(host, port, username, driver='libhdfs3')
path = '/user/dummy.txt'
with hdfs.open(path, 'wb') as f:
    f.write("")
...