У меня есть pandas фрейм данных со следующими данными:
Этапы {0: [datetime ....], 1: [datetime .....], ...}
и у меня есть несколько таких столбцов, которые являются словарями, мне нужно преобразовать их в Spark Dataframe, есть ли простой способ сделать это, возможно, через pandas?
Редактировать:
У меня есть pandas Dataframe со следующей структурой
meta object
id object
pc object
part object
wps object
mistake object
timeend object
timestart object
tena object
в основном все объекты являются словарями, и мне нужно преобразовать это в искровой dataframe, чтобы я мог делать функции как (groupby, et c) чтобы получить от него важную информацию.
Я использовал следующий код, чтобы попытаться создать мой фрейм данных искры:
# Auxiliar functions
def equivalent_type(f):
if f == 'datetime64[ns]': return DateType()
elif f == 'object': return ArrayType(ArrayType(StringType))
elif f == 'int64': return LongType()
elif f == 'int32': return IntegerType()
elif f == 'float64': return FloatType()
else: return StringType()
def define_structure(string, format_type):
try: typo = equivalent_type(format_type)
except: typo = StringType()
return StructField(string, typo)
# Given pandas dataframe, it will return a spark's dataframe.
def pandas_to_spark(pandas_df):
columns = list(pandas_df.columns)
types = list(pandas_df.dtypes)
struct_list = []
for column, typo in zip(columns, types):
struct_list.append(define_structure(column, typo))
p_schema = StructType(struct_list)
return spark.createDataFrame(pandas_df, p_schema)
spark_df = pandas_to_spark(df)
однако сохраненные значения не сохраняются как словари, они сохраняются как строки, мне нужно поддерживать формат, как это было бы на обычном pandas dataframe