spark+python 机器学习 1 数据探索与展示
2018-01-16 00:00
811 查看
数据来源:http://files.grouplens.org/datasets/movielens/ml-100k.zip
数据显示
统计各个职业人
电影信息统计,数据过滤
数据显示
import matplotlib from matplotlib.pyplot import hist from pyspark import SparkContext import numpy as np import matplotlib.pyplot as plt sc = SparkContext("local", "first Spark app") user_data = sc.textFile("./ml-100k/u.user") user_fields = user_data.map(lambda line: line.split("|")) """ 一下为统计各个列类型的总数,注意:distinct """ num_users = user_fields.map(lambda fields: fields[0]).count() num_genders = user_fields.map(lambda fields: fields[2]).distinct().count() num_occupations = user_fields.map(lambda fields: fields[3]).distinct().count() num_zipcodes = user_fields.map(lambda fields: fields[4]).distinct().count() print("Users: %d, genders: %d, occupations: %d, ZIP codes: %d" % (num_users, num_genders, num_occupations, num_zipcodes)) """ 绘制直方图,显示各年龄段注册用户分布图。 """ ages = user_fields.map(lambda x: int(x[1])).collect() hist(ages, bins=20, color='lightblue', normed=True) fig = matplotlib.pyplot.gcf() fig.set_size_inches(16, 10) plt.show()结果:
统计各个职业人
import matplotlib from matplotlib.pyplot import hist from pyspark import SparkContext import numpy as np import matplotlib.pyplot as plt sc = SparkContext("local", "first Spark app") user_data = sc.textFile("./ml-100k/u.user") user_fields = user_data.map(lambda line: line.split("|")) """ 一下为统计各个列类型的总数,注意:distinct """ num_users = user_fields.map(lambda fields: fields[0]).count() num_genders = user_fields.map(lambda fields: fields[2]).distinct().count() num_occupations = user_fields.map(lambda fields: fields[3]).distinct().count() num_zipcodes = user_fields.map(lambda fields: fields[4]).distinct().count() print("Users: %d, genders: %d, occupations: %d, ZIP codes: %d" % (num_users, num_genders, num_occupations, num_zipcodes)) """ 统计所有职业的个数 """ count_by_occupation = user_fields.map(lambda fields: (fields[3], 1)).reduceByKey(lambda x, y: x + y).collect() x_axis1 = np.array([c[0] for c in count_by_occupation]) y_axis1 = np.array([c[1] for c in count_by_occupation]) x_axis = x_axis1[np.argsort(y_axis1)] y_axis = y_axis1[np.argsort(y_axis1)] pos = np.arange(len(x_axis)) width = 1.0 ax = plt.axes() ax.set_xticks(pos + (width / 2)) ax.set_xticklabels(x_axis) plt.bar(pos, y_axis, width, color='lightblue') plt.xticks(rotation=30) fig = matplotlib.pyplot.gcf() fig.set_size_inches(16, 10) count_by_occupation2 = user_fields.map(lambda fields: fields[3]).countByValue() plt.show()
电影信息统计,数据过滤
import matplotlib from matplotlib.pyplot import hist from pyspark import SparkContext import numpy as np import matplotlib.pyplot as plt sc = SparkContext("local", "first Spark app") movie_data = sc.textFile("./ml-100k/u.item") # 数据格式 print(movie_data.first()) num_movies = movie_data.count() # 总数据数数目 print(num_movies) def convert_year(x): """ # 若数据缺失年份则将其年份设为1900。 在后续处理中会过滤掉这类数据 """ try: return int(x[-4:]) except: return 1900 def return_line(tuple): tuple[2] = convert_year(tuple[2]) return tuple # 过滤不正确的数据 movie_fields = movie_ 7fe0 data.map(lambda lines: lines.split("|")) years = movie_fields.map(lambda fields: fields[2]).map(lambda x: convert_year(x)) years_filtered = years.filter(lambda x: x != 1900) print(years_filtered.first()) movie_fields = movie_data.map(lambda lines: lines.split("|")) years = movie_fields.map(lambda fields: return_line(fields)) print(years.collect())
相关文章推荐
- Python机器学习探索(一)——计算机学习数据的能力
- Python下的数据处理和机器学习,对数据在线及本地获取、解析、预处理和训练、预测、交叉验证、可视化
- Python数据分析与机器学习-贝叶斯实现拼写检查器
- 利用python进行泰坦尼克生存预测——数据探索分析
- 【机器学习实验】学习Python来分类现实世界的数据
- Python数据分析与机器学习-交易数据异常检测
- Python机器学习----第2部分 样本数据预处理
- python数据分析与机器学习-用户流失预警
- 大数据、机器学习、深度学习Python库必备速查表,快来收藏!
- R语言与机器学习-学习笔记2(数据探索及理解)
- 探索 Python、机器学习和 NLTK 库
- python数据分析与展示(三)
- 非常全面到位的介绍与源代码地址 :Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- # 机器学习数据挖掘关联规则挖掘Apriori算法python代码实现
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- Python数据分析与机器学习-Numpy
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- Python超过R,成为数据科学和机器学习的最常用语言
- 云计算与数据科学:Microsoft Azure 机器学习与Python 简介
- 地铁译:Spark for python developers ---Spark与数据的机器学习