Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
hadoop流-如何使用python内部连接两个diff文件_Python_Hadoop_Hadoop Streaming - Fatal编程技术网

hadoop流-如何使用python内部连接两个diff文件

hadoop流-如何使用python内部连接两个diff文件,python,hadoop,hadoop-streaming,Python,Hadoop,Hadoop Streaming,我想根据18到25岁之间的用户年龄组找出访问量最大的网站页面。 我有两个文件,一个包含用户名,年龄和其他文件包含用户名,网站名。示例: users.txt 约翰,22岁 pages.txt John,google.com 我已经用python编写了以下内容,在hadoop之外,它可以像我预期的那样工作 import os os.chdir("/home/pythonlab") #Top sites visited by users aged 18 to 25 #read the users

我想根据18到25岁之间的用户年龄组找出访问量最大的网站页面。 我有两个文件,一个包含用户名,年龄和其他文件包含用户名,网站名。示例:

users.txt

约翰,22岁

pages.txt

John,google.com

我已经用python编写了以下内容,在hadoop之外,它可以像我预期的那样工作

import os
os.chdir("/home/pythonlab")

#Top sites visited by users aged 18 to 25

#read the users file
lines = open("users.txt")
users = [ line.split(",") for line in lines]      #user name, age (eg - john, 22)
userlist = [ (u[0],int(u[1])) for u in users]     #split the user name and age

#read the page visit file
pages = open("pages.txt")
page = [p.split(",") for p in pages]              #user name, website visited (eg - john,google.com)
pagelist  = [ (p[0],p[1]) for p in page]

#map user and page visits & filter age group between 18 and 25
usrpage = [[p[1],u[0]] for u in userlist for p in pagelist  if (u[0] == p[0] and u[1]>=18 and u[1]<=25) ]

for z in usrpage:
    print(z[0].strip('\r\n')+",1")     #print website name, 1
导入操作系统
os.chdir(“/home/pythonlab”)
#18至25岁用户访问的热门网站
#读取用户文件
行=打开(“users.txt”)
users=[line.split(“,”)表示行中的行]#用户名、年龄(例如-john,22岁)
userlist=[(u[0],int(u[1])表示用户中的u]#拆分用户名和年龄
#读取页面访问文件
pages=打开(“pages.txt”)
页面=[p.split(“,”)表示页面中的p]#用户名,访问过的网站(例如-john,google.com)
页面列表=[(p[0],p[1]),用于第页中的p]
#映射用户和页面访问并筛选18到25岁的年龄组

如果(u[0]==p[0]和u[1]>=18和u[1],则页面列表中p的用户列表中的u的usrpage=[[p[1],u[0]]您需要研究如何使用。这将允许您将多个源文件合并为一个源文件,就像您需要的那样。它允许您将两个数据源合并在一起,就像在SQL中一样,然后将结果推送到映射器和减缩器中。

请注意格式设置;小文本旁边有大文本,并且代码未格式化。