Сохранение фрейма данных в улей (как изменить типы схем df на string, если они имеют тип date, я не хочу жестко кодировать имена столбцов)

#apache-spark #pyspark

#apache-spark #pyspark

Вопрос:

Я хочу скрыть pandas df для spark df и сохранить его в hive.

     #create spark df from panda dataframe
    df = self.ss.createDataFrame(dataframe)

    df.createOrReplaceTempView("table_Template") 
    self.ss.sql("create table IF NOT EXISTS database."  table_name  " STORED AS PARQUET as select * from table_Template") 
 

ОШИБКА:
pyspark.sql.utils.Исключение AnalysisException: ‘org.apache.hadoop.hive.ql.metadata.Исключение HiveException: java.lang.Исключение UnsupportedOperationException: паркет не поддерживает date. Смотрите HIVE-6384;

Ответ №1:

Попробуйте приведенный ниже код, чтобы привести все date столбцы типа string .

 df.select(map(lambda field: F.col(field.name).cast("string") if field.dataType.typeName == "date" else F.col(field.name), df.schema)).show()