我有一个Pandas Series对象。
我希望直接从Series对象创建Spark DF,而不需要中间的Pandas dataframe。
如果我将Series对象更改为以下内容:
dates = pd.Series(pd.date_range(start_date,end_date))/
.dt.strftime('%y%m%d')/
.astype(int)/
我希望直接从Series对象创建Spark DF,而不需要中间的Pandas dataframe。
_schema = StructType([
StructField("date_id", IntegerType(), True),
])
dates_rdd = sc.parallelize(dates)
self.date_table = spark.createDataFrame(dates_rdd, _schema)
错误:
Error: raise TypeError("StructType can not accept object %r in type %s" %
(obj, type(obj)))
TypeError: StructType can not accept object 160101 in type <class
'numpy.int64'>
如果我将Series对象更改为以下内容:
dates = pd.Series(pd.date_range(start_date,end_date))/
.dt.strftime('%y%m%d')/
.astype(int).values.tolist()
错误变成了:
raise TypeError("StructType can not accept object %r in type %s" % (obj,
type(obj)))
TypeError: StructType can not accept object 160101 in type <class 'int'>
如何正确地将日期列表/ rdd 中包含的 Int 值映射到可从 Spark Dataframes 接受的 Python 本机整数?