2016-11-07 1 views
0

Использование pyspark, мне нужно отфильтровать несколько файлов журнала ежедневного доступа службы SNS от пользователя nos. И затем, преффицируйте результат, группируя его пользователем. Вот часть питона скрипт, который извлекает журнал доступа пользователей с массивом пользователей NOS:Оформление результата SparkContext textFile отфильтрованных линий

def is_user_log(line): 
    return any(userno in line for userno in userno_array) 
sc = SparkContext(appName="<app_name>") 
text_file = sc.textFile(hdfs_url) 
lines = text_file.filter(is_user_log) 

Теперь у меня есть журналы доступа, что я заинтересован в позвонив по телефону lines.collect(), но то, что я нужно сделать здесь, чтобы сгруппировать результат пользователем nos. Чтобы быть конкретным, когда Spark улавливает интересующую меня линию, я хочу, чтобы она добавила несколько слов в строку. Можно ли использовать pyspark?

ответ

1

Вы можете просто использовать map преобразование:

def extract_data(line): 
    # here you write code to extract data 
    # that may use regular expressions 
    return line + extracted_data 

lines.map(extract_data) 
+0

Спасибо за отзыв. Но «некоторые слова» должны быть разными по строкам, например. пользователю нет, что линия захвачена. – choiapril

+0

Нет проблем, см. Обновленный ответ – Mariusz