2015-07-24 4 views
0

У меня есть приложение Spark (1.3.1) с Python, работающее на YARN, кластеры EMR и использующее S3-хранилище.
Мое приложение преобразует CSV-файл в RDD и выполняет преобразования регулярных выражений (ETL). Нам нужно создать решение логарифмической линии для обнаружения ошибок и идентификации проблемы с источником (запись и столбец). Я не имею ни малейшего представления об этом.Решение журнала регистрации искры

def lineMap(column): 
    return (
     column[1], 
     column[2] 
    ) 

fileContent = sc.textFile(s3FilePathInput) 

RDDcru = (fileContent 
       .map(lambda x : x.split(";")) 
       .map(lineMap) 
      ) 


Я пытаюсь создать попытку - поймать блок на функцию lineMap, используя ведение журнала по умолчанию питона LIB. Я попытался также создать новый SparkContext Writting лог файлов на S3 (на вылов блока)

потерпели неудачу ...

Спасибо и извините-х за мой плохой английский :)

ответ

0

Решение этой case создает новое поле журнала.

def etl_func(col,log): 
    try: 
     (code) 
    except Exception,e: 
     log.append(str(e)) 

def lineMap(column): 
    log = [] 
    return (
     etl_func(column[1],log), 
       column[2], 
       log 
    )