Moh*_*han 8 python python-2.7 apache-spark pyspark
我有如下数据.文件名:babynames.csv.
year name percent sex
1880 John 0.081541 boy
1880 William 0.080511 boy
1880 James 0.050057 boy
Run Code Online (Sandbox Code Playgroud)
我需要根据年份和性别对输入进行排序,我希望输出汇总如下(此输出将分配给新的RDD).
year sex avg(percentage) count(rows)
1880 boy 0.070703 3
Run Code Online (Sandbox Code Playgroud)
我不确定如何在pyspark中执行以下步骤.需要你的帮助
testrdd = sc.textFile("babynames.csv");
rows = testrdd.map(lambda y:y.split(',')).filter(lambda x:"year" not in x[0])
aggregatedoutput = ????
Run Code Online (Sandbox Code Playgroud)
zer*_*323 21
spark-csv包装加载数据
df = (sqlContext.read
.format("com.databricks.spark.csv")
.options(inferSchema="true", delimiter=";", header="true")
.load("babynames.csv"))
Run Code Online (Sandbox Code Playgroud)导入所需的功能
from pyspark.sql.functions import count, avg
Run Code Online (Sandbox Code Playgroud)分组和汇总(可选使用Column.alias:
df.groupBy("year", "sex").agg(avg("percent"), count("*"))
Run Code Online (Sandbox Code Playgroud)另外:
percent为数字year,sex),percent)aggregateByKey 运用 pyspark.statcounter.StatCounter| 归档时间: |
|
| 查看次数: |
29083 次 |
| 最近记录: |