我在pyspark上使用SparkSQL将一些PostgreSQL表存储到DataFrame中,然后构建一个查询,该查询根据date
类型的start
和stop
列生成多个时间序列。pyspark上的SparkSQL:如何生成时间序列?
假设my_table
包含:
start | stop
-------------------------
2000-01-01 | 2000-01-05
2012-03-20 | 2012-03-23
在PostgreSQL它很容易做到这一点:
SELECT generate_series(start, stop, '1 day'::interval)::date AS dt FROM my_table
,它会生成此表:
dt
------------
2000-01-01
2000-01-02
2000-01-03
2000-01-04
2000-01-05
2012-03-20
2012-03-21
2012-03-22
2012-03-23
,但怎么办那使用普通的SparkSQL?是否有必要使用UDF或一些DataFrame方法?
谢谢你,拉克什。我提出了一个不太详细的解决方案,与您的想法保持一致。我希望它的SparkSQL语法尽可能少用Python代码。我会接受你的答案,但看看我的解决方案。 – pietrop