Я хочу слушать определенные каталоги в HDFS, используя python (все, что я нашел, было в java).Когда файл загружается или перемещается в отслеживаемый каталог, я хочу, чтобы мой скрипт на Python делал с ним разные вещи, а затем удалял все файлы в этом каталоге.Проблема в том, что я не могу найти способ контролировать каталог в HDFS, используя python.
Я пытался использовать Watchdog, как вы можете видеть в прилагаемом коде, но он не может определить путь.Путь существует и директория также, но я показываю ОШИБКУ: Путь не является каталогом.введите код здесь
from hdfs import InsecureClient
client_hdfs = InsecureClient('', user='')
TestWatcher = client_hdfs.resolve("")
print(TestWatcher)
import time
from watchdog.observers import Observer
#from watchdog.observers.polling import PollingObserver
from watchdog.events import PatternMatchingEventHandler
if __name__ == "__main__":
#patterns = "*"
patterns = "*.pickle"
ignore_patterns = ""
ignore_directories = False
case_sensitive = True
#case_sensitive = False
my_event_handler = PatternMatchingEventHandler(patterns,
ignore_patterns, ignore_directories, case_sensitive)
def on_created(event):
print(f"hey, {event.src_path} has been created!")
def on_deleted(event):
print(f"what the f**k! Someone deleted {event.src_path}!")
def on_modified(event):
print(f"hey buddy, {event.src_path} has been modified")
def on_moved(event):
print(f"ok ok ok, someone moved {event.src_path} to
{event.dest_path}")
my_event_handler.on_created = on_created
my_event_handler.on_deleted = on_deleted
my_event_handler.on_modified = on_modified
my_event_handler.on_moved = on_moved
path = TestWatcher
go_recursively = False
my_observer = Observer()
#my_observer = PollingObserver()
my_observer.schedule(my_event_handler, path, recursive=go_recursively)
my_observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
my_observer.stop()
my_observer.join()
ОШИБКА OSError: Путь не является каталогом