Могу ли я использовать сторожевой таймер python для просмотра изменений в каталогах HDFS? Если нет, то как это сделать с помощью Python? (все, что я нашел, было на Яве) - PullRequest
0 голосов
/ 24 апреля 2019

Я хочу слушать определенные каталоги в 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: Путь не является каталогом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...