如何在 PySpark 中将 Pandas 的 DatetimeIndex 转换为 DataFrame?

use*_*806 3 apache-spark apache-spark-sql pyspark

我有以下代码:

# Get the min and max dates
minDate, maxDate = df2.select(f.min("MonthlyTransactionDate"), f.max("MonthlyTransactionDate")).first()
d = pd.date_range(start=minDate, end=maxDate, freq='MS')    

tmp = pd.Series(d)
df3 = spark.createDataFrame(tmp)
Run Code Online (Sandbox Code Playgroud)

我已经检查了 tmp 和 a 我有一个日期列表的 pandas 数据框。然后我检查 df3 但看起来 lit 只是一个空列表:

++ 
|| 
++ 
|| 
|| 
|| 
|| 
|| 
|| 
|| 
||
Run Code Online (Sandbox Code Playgroud)

发生了什么?

nee*_*ani 6

在你的情况下dDatetimeIndex. 您可以做的是创建 pandas DataFrame DatetimeIndex,然后将 Pandas DF 转换为 Spark DF。PFB 示例代码。

1.创建日期时间索引

import pandas as pd
d = pd.date_range('2018-12-01', '2019-01-02', freq='MS')
Run Code Online (Sandbox Code Playgroud)

2. 创建 Pandas DF。

p_df = pd.DataFrame(d)
Run Code Online (Sandbox Code Playgroud)

3. 创建 Spark 数据帧。

spark.createDataFrame(p_df).show()
Run Code Online (Sandbox Code Playgroud)