2016-11-07 46 views
0

使用pyspark,我需要過濾用戶nos的SNS服務的幾個日常訪問日誌文件。然後,通過用戶nos對它進行分組來美化結果。這裏是提取用戶訪問日誌,用戶號的數組python腳本的一部分:裝飾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