我有2个拼花地板零件文件
   
    part-00043-0bfd7e28-6469-4849-8692-e625c25485e2-c000.snappy.parquet
   
   (是2017年11月14日运行的部分文件)和
   
    part-00199-64714828-8a9e-4ae1-8735-c5102c0a834d-c000.snappy.parquet
   
   (是2017年11月16日运行的部分文件),两者具有相同的模式(我通过打印模式验证)。
  
  
   我的问题是,如果我用Spark分别阅读这两个文件,我有10列。但是,如果我把这个文件放在一起尝试读取,总计数是正确的(两个文件中的行的总和),但从第二个文件中,大多数列为空。只有2-3列具有正确的值(值存在于文件中,因为如果我单独阅读,它会正确显示)。我在这里错过了什么?以下是我用于测试的代码:
  
  def initSparkConfig: SparkSession = {
    val sparkSession: SparkSession = SparkSession
      .builder()
      .appName("test")
      .master("local")
      .getOrCreate()
    sparkSession.sparkContext.hadoopConfiguration.set("mapreduce.fileoutputcommitter.algorithm.version", "2")
    sparkSession.sparkContext.getConf.set("spark.hadoop.parquet.enable.summary-metadata", "false")
    sparkSession.sparkContext.getConf.set("spark.sql.parquet.mergeSchema", "false")
    sparkSession.sparkContext.getConf.set("spark.sql.parquet.filterPushdown", "false")
    sparkSession.sparkContext.getConf.set("spark.sql.hive.metastorePartitionPruning", "true")
    sparkSession
  }
sparkSession = initSparkConfig
sparkSession.read.parquet("/test_spark/").createOrReplaceTempView("table")
sparkSession.sql("select * from table").show 
  
   更新:
  
  
   如果我分别读取这两个文件并进行联合读取,则所有列都会被填充而不会出现任何问题。
  
  
   更新2:
  
  
   如果我
   
    mergeSchema = true
   
   在阅读时,它抛出一个异常
   
    Found duplicate column(s) in the data schema and the partition schema:
   
   
    [即将为空的列列表]
   
   . 其中一个过滤柱为
   
    ambiguous