df_pandas = pd.read_csv('filepath/filename' , delimiter='\t' , encoding = 'utf-8', error_bad_lines=False )
#defining the schema for the spark dataframe
df_schema_file = StructType([StructField("Col1", StringType(), True),StructField("Col2", StringType(), True)])
spark_df = spark.createDataFrame(df_pandas,df_schema_file)
spark_df = spark_df.withColumn("CreatedOn", lit(from_unixtime(unix_timestamp())))
spark_df = spark_df.withColumn("CreatedOn", spark_df["CreatedOn"].cast(TimestampType()))
spark_df.write.mode('append').saveAsTable('tbl_name')
#Creating dataframe from existing table
spark_df = spark.table('tbl_name')
df_name = spark_df.toPandas()
Я использую приведенный выше код, чтобы прочитать файл TSV, создать постоянную таблицу с данными в Databricks.Вот почему необходимо преобразовать данные в искровые кадры.Я также должен добавить созданную метку времени в таблицу и указать тип данных метки времени.Я не хочу, чтобы это воспринималось как строка.
Затем мне нужно создать фрейм данных pandas из таблицы, чтобы я мог выполнить некоторые простые преобразования данных.Кадр данных панд должен быть сделан из существующей таблицы.
Прямо сейчас этот фрагмент кода занимает 2,48 минуты для запуска в блоках данных.Это слишком много, так как раньше это выполнялось менее чем за 6 секунд, когда я не использую код для создания нового столбца отметки времени и определения его типа данных.
Есть ли способ оптимизировать этот код?Я не знаю, есть ли какой-либо способ сохранить файл данных pandas напрямую в виде таблицы.Следовательно преобразование в искровые кадры данных.И мне нужно сделать преобразования в самом фрейме данных Pandas.И я не знаю какого-либо метода для создания pandas dataframe из таблицы напрямую.Следовательно, сначала зажечь, а затем панд.
Есть ли способ оптимизировать этот код?