【发布时间】:2018-03-31 08:20:44
【问题描述】:
我有一个名为 stores_df 的数据框,其中包含日期和销售等商店信息。我有另一个名为 avg_sales_store_by_month 的数据框,其中包含每个商店每个月的平均销售额。我希望从中获取平均销售额列以将其附加到 stores_df。我的问题是加入后,stores_df 的顺序发生了变化
下面是 stores_df 的前几行。
+-----+----------+---------+----+------------+-----------+----------+-----------+------------+-----+----+---+
|Store| Date|IsHoliday|Dept|Weekly_Sales|Temperature|Fuel_Price| CPI|Unemployment|Month|Year|Day|
+-----+----------+---------+----+------------+-----------+----------+-----------+------------+-----+----+---+
| 1|2010-02-05| FALSE| 1| 24924| 42.31| 2.572|211.0963582| 8.106| 2|2010| 5|
| 1|2010-02-12| TRUE| 1| 46039| 38.51| 2.548|211.2421698| 8.106| 2|2010| 12|
| 1|2010-02-19| FALSE| 1| 41595| 39.93| 2.514|211.2891429| 8.106| 2|2010| 19|
| 1|2010-05-14| FALSE| 1| 18926| 74.78| 2.854|210.3374261| 7.808| 5|2010| 14|
+-----+----------+---------+----+------------+-----------+----------+-----------+------------+-----+----+---+
下面是avg_sales_store_by_month的前几行,我想抓取最后一列并将其附加到stores_df的末尾。
+-----+-----+------------------+
|Store|Month|avg_sales_by_month|
+-----+-----+------------------+
| 39| 11| 23317.75|
| 43| 7| 13090.84|
| 10| 2| 28407.05|
| 23| 6| 21265.7|
| 4| 10| 28723.2|
| 9| 10| 8468.2|
+-----+-----+------------------+
我的问题是当我使用我的加入时:
stores_df = stores_df.join( avg_sales_store_by_month, Seq("Store", "Month"), "left" )
stores_df 的行被重新排序,我希望它的顺序与连接之前的顺序相同,但有额外的列。我如何做到这一点?
加入sn-p后,顺序就乱了。
+-----+-----+----------+---------+----+------------+-----------+----------+-----------+------------+----+---+------------------+
|Store|Month| Date|IsHoliday|Dept|Weekly_Sales|Temperature|Fuel_Price| CPI|Unemployment|Year|Day|avg_sales_by_month|
+-----+-----+----------+---------+----+------------+-----------+----------+-----------+------------+----+---+------------------+
| 39| 11|2010-11-05| FALSE| 1| 31729| 61.62| 2.689|210.7202444| 8.476|2010| 5| 23317.75|
| 39| 11|2010-11-12| FALSE| 1| 12324| 62.21| 2.728|210.7667944| 8.476|2010| 12| 23317.75|
| 39| 11|2010-11-19| FALSE| 1| 15137| 55.5| 2.771| 210.65429| 8.476|2010| 19| 23317.75|
| 39| 11|2011-11-11| FALSE| 2| 65758| 63.11| 3.297|216.7217373| 7.716|2011| 11| 23317.75|
| 39| 11|2011-11-18| FALSE| 2| 70050| 66.09| 3.308|216.9395861| 7.716|2011| 18| 23317.75|
+-----+-----+----------+---------+----+------------+-----------+----------+-----------+------------+----+---+------------------+
【问题讨论】:
标签: scala apache-spark dataframe