代码之家  ›  专栏  ›  技术社区  ›  user2811630

为什么在读取拼花地板文件时会出现“不是拼花地板”错误

  •  0
  • user2811630  · 技术社区  · 4 年前

    从硬盘读取拼花地板文件时发生以下错误

    2020-06-04 14:11:23 WARN  TaskSetManager:66 - Lost task 44.0 in stage 1.0 (TID 3514, 192.168.16.41, executor 1): java.lang.RuntimeException: hdfs://data-hadoop-hdfs-nn.hadoop:8020/somedata/serviceName=someService/masterAccount=ma/siteAccount=sa/systemCode=111/part-00170-7ff5ac19-98b7-4a5a-b93d-9e988dff07eb.c000.snappy.parquet is not a Parquet file. expected magic number at tail [80, 65, 82, 49] but found [55, 49, 98, 48]
    

    我在网上发现了类似的问题,但大多数人试图阅读拼花地板以外的其他文件类型。 我100%确定这个文件是用拼花地板格式写的,正如日志中所见。文件名为零件-00170-7ff5ac19-98b7-4a5a-b93d-9e988dff07eb.c000.snappy.plack。

    只有一个作业写入此somdata文件夹,而这个作业只是写入拼花地板(火花结构化流作业) 结尾还说这是一个拼花地板文件。 由同一作业编写的其他拼花地板文件不会抛出此错误

    0 回复  |  直到 4 年前
        1
  •  1
  •   user1238364    2 年前

    今天也犯了同样的错误。对我们来说,问题是我们正在生成拼花地板文件>2GB,这会破坏一些客户端。

    https://issues.apache.org/jira/browse/SPARK-24296

    设置火花选项 maxRecordsPerFile 限制为我们固定的文件大小。