因为工作缘故要接触pyspark做线上分布式数据处理,每当在开发过程中遇到的问题,上网查时,网上相关回答的资料相对较少,所以作者以自己遇到的问题以及其解决方法做一个总结和分享,帮助有相关需求的同学更快更方便地解决困难。
- 在上线项目实施中,不可避免要根据时间段(季度/月/天)做成本或者收入的累计增量计算,这里不一定要调用的pyspark函数语句,只需要用到简单的sql语句就可以满足这个需求。
当用spark.sql从hdfs调出需要的数据
df = spark.sql("select report_date, revenue, cost from (database_name)")
**用spark.sql调出来的数据结构就直接是dataframe格式**
根据report_date计算出revenue 和 cost 的累计增量 ##
df.registerTempTable("df_table")
df_cum = df.sql("""select report_date
, revenue
, cost
, sum(revenue) over (