Sta*_*ter 3 python apache-spark apache-spark-sql pyspark
我正在使用Spark对用户日志文件进行探索性数据分析.我正在做的一项分析是每个主机每天的平均请求.因此,为了计算平均值,我需要将DataFrame的总请求列除以DataFrame的数字唯一Request列.
total_req_per_day_df = logs_df.select('host',dayofmonth('time').alias('day')).groupby('day').count()
avg_daily_req_per_host_df = total_req_per_day_df.select("day",(total_req_per_day_df["count"] / daily_hosts_df["count"]).alias("count"))
Run Code Online (Sandbox Code Playgroud)
这就是我用PySpark编写的用来确定平均值的内容.这是我得到的错误日志
AnalysisException: u'resolved attribute(s) count#1993L missing from day#3628,count#3629L in operator !Project [day#3628,(cast(count#3629L as double) / cast(count#1993L as double)) AS count#3630];
Run Code Online (Sandbox Code Playgroud)
注意:daily_hosts_df和logs_df缓存在内存中.如何划分两个数据帧的计数列?
zer*_*323 15
无法从另一个表中引用列.如果要组合数据,join首先必须使用与此类似的内容:
from pyspark.sql.functions import col
(total_req_per_day_df.alias("total")
.join(daily_hosts_df.alias("host"), ["day"])
.select(col("day"), (col("total.count") / col("host.count")).alias("count")))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8971 次 |
| 最近记录: |