创建动态数据帧pySpark

时间:2018-03-15 09:15:56

标签: pyspark

是否可以动态创建DataFrame。

示例想要在给定日期范围的两列中创建日期列表及其日期?

Input:- 03-01-2018 - 03-31-2018

03-01-2018 THU
03-02-2018 FRI

.......

03-31-2018 SAT

1 个答案:

答案 0 :(得分:1)

您可以使用python,然后导出到spark:

import datetime
start = datetime.date(2018,3,1)
end = datetime.date(2018,3,31)

date_list = []
for i in range((end - start).days+1):
    date_list.append(start+datetime.timedelta(days=i))

sc.parallelize(date_list).take(2)
[datetime.date(2018, 3, 1), datetime.date(2018, 3, 2)]
sc.parallelize(date_list).count()
31

如果您的日期范围在数据框内,则必须创建一个UDF,它将args作为2个日期并返回日期数组,然后将其展开。