4 回答

TA貢獻1784條經驗 獲得超7個贊
提供可輕松重新創建的小樣本數據。
至少,海報應在其數據框和代碼上提供幾行和列,以便輕松創建它。簡單來說,我的意思是剪切和粘貼。盡可能小,以證明您的問題。
我有以下數據幀:
+-----+---+-----+----------+
|index| X|label| date|
+-----+---+-----+----------+
| 1| 1| A|2017-01-01|
| 2| 3| B|2017-01-02|
| 3| 5| A|2017-01-03|
| 4| 7| B|2017-01-04|
+-----+---+-----+----------+
可以使用以下代碼創建:
df = sqlCtx.createDataFrame(
[
(1, 1, 'A', '2017-01-01'),
(2, 3, 'B', '2017-01-02'),
(3, 5, 'A', '2017-01-03'),
(4, 7, 'B', '2017-01-04')
],
('index', 'X', 'label', 'date')
)
顯示所需的輸出。
詢問您的具體問題并向我們展示您想要的輸出。
如何創建一個新列 'is_divisible' 具有價值 'yes' ,如果當月的天 'date' 加7天整除值列'X',并 'no' 以其他方式?
期望的輸出:
+-----+---+-----+----------+------------+
|index| X|label| date|is_divisible|
+-----+---+-----+----------+------------+
| 1| 1| A|2017-01-01| yes|
| 2| 3| B|2017-01-02| yes|
| 3| 5| A|2017-01-03| yes|
| 4| 7| B|2017-01-04| no|
+-----+---+-----+----------+------------+
解釋如何獲得輸出。
詳細解釋如何獲得所需的輸出。它有助于顯示示例計算。
例如,在第1行中,X = 1,日期= 2017-01-01。添加7天到目前為止2017-01-08。這個月的日期是8,因為8可以被1整除,答案是“是”。
同樣,對于最后一行X = 7和日期= 2017-01-04。將7添加到日期會產生11作為該月的日期。由于11%7不是0,答案是“不”。
分享您現有的代碼。
向我們展示您已完成或嘗試過的內容,包括所有*代碼,即使它不起作用。告訴我們您遇到的問題,如果收到錯誤,請提供錯誤消息。
(*您可以省略代碼來創建spark上下文,但是您應該包括所有導入。)
我知道如何添加一個 加7天的新列,date 但是我無法將整個月的日期作為整數。
from pyspark.sql import functions as f
df.withColumn("next_week", f.date_add("date", 7))
包括版本,導入和使用語法突出顯示
這個答案的全部細節由desertnaut撰寫。
對于性能調優帖子,請包括執行計劃
解析火花輸出文件
其他說明。
請務必先閱讀如何詢問以及如何創建最小,完整和可驗證的示例。
閱讀上面鏈接的這個問題的其他答案。
有一個好的,描述性的標題。
講禮貌。SO上的人都是志愿者,所以請好好問。
添加回答
舉報