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上的人都是志愿者,所以请好好问。
添加回答
举报