Python 具有不同模式的拼花地板合并模式

Python 具有不同模式的拼花地板合并模式,python,dataframe,apache-spark,parquet,Python,Dataframe,Apache Spark,Parquet,在将JSON读入数据帧并合并模式时,这允许您推断数据并得出最佳模式。这允许您将给定年份的大量JSON文件读入数据帧中;这很有效。我们希望利用拼花柱状功能,并最终将每个JSON文件转换为拼花,尽管我们遇到了一个问题,即不能将模式与拼花文件合并,因为拼花推断数据并为每个拼花文件创建模式。为什么通过数据框的拼花文件不允许覆盖模式并推断数据,以便在没有不兼容数据类型异常的情况下读入所有数据?我希望避免在创建拼花地板文件时必须提前创建通用模式 有什么解决方案可以读取拼花地板文件并推断数据类型,比如如何将大

在将JSON读入数据帧并合并模式时,这允许您推断数据并得出最佳模式。这允许您将给定年份的大量JSON文件读入数据帧中;这很有效。我们希望利用拼花柱状功能,并最终将每个JSON文件转换为拼花,尽管我们遇到了一个问题,即不能将模式与拼花文件合并,因为拼花推断数据并为每个拼花文件创建模式。为什么通过数据框的拼花文件不允许覆盖模式并推断数据,以便在没有不兼容数据类型异常的情况下读入所有数据?我希望避免在创建拼花地板文件时必须提前创建通用模式

有什么解决方案可以读取拼花地板文件并推断数据类型,比如如何将大量JSON文件读入数据帧

df_p = spark.read.options(mergeSchema=True).parquet('s3a://parquet_example_data/year=2020/')
Exception thrown:
Caused by: org.apache.spark.SparkException: Failed to merge fields 'field1' and 'field1'. Failed to merge fields 'field2' and 'field2'. Failed to merge fields 'field3' and 'field3'. Failed to merge fields 'field4' and 'field4'. Failed to merge fields 'field5' and 'field5'. Failed to merge incompatible data types bigint and double
    at org.apache.spark.sql.types.StructType$$anonfun$merge$1$$anonfun$apply$3.apply(StructType.scala:502)
    at org.apache.spark.sql.types.StructType$$anonfun$merge$1$$anonfun$apply$3.apply(StructType.scala:495)
    at scala.Option.map(Option.scala:146)
    at org.apache.spark.sql.types.StructType$$anonfun$merge$1.apply(StructType.scala:495)