无法读取镶木地板文件,出现Gzip代码失败错误

时间:2018-08-13 18:20:57

标签: python-3.x pyspark parquet pyarrow fastparquet

我正在尝试使用pyarrow将镶木地板转换为csv文件。

/* GENERAL STYLE */
#colors_container{
    background-color: white;
    width: 100%;
    height: 900px;
}

#colors_container #colors_buttons{
    width: 450px;
    height: 50px;
    margin: 20px auto 10px auto;
    background-color: purple;
}

#colors_container #colors_buttons a {
    text-decoration: none;
    float: left;
    margin-right: 30px;
    border : solid 2px red;
    padding: 10px 10px 10px 10px ;
    color: white;
}

#colors_container #colors{
    width: 1060px;
    height: 800px;
    margin: 10px auto 10px auto;
    background-color: yellow;
    padding: 10px 10px 10px 10px;
}


/* AREA  OF DISPLAY */

.red , .blue , .green{
    float: left;
    margin-right: 10px;
    margin-bottom: 10px;

    position: relative;
    
    border: 1px solid #333;
    
    overflow: hidden;
    width: 240px;
    height: 300px;

    /*Center the button*/
    display: flex;
    align-items: center;
    justify-content: center;
}

        /*  IMAGES*/

        .red img , .blue img , .green img {
            max-width: 100%;
            height: 100%;
            -moz-transition: all 0.3s;
            -webkit-transition: all 0.3s;
            transition: all 0.3s;
        
        }

       
/*BUTTON*/

.button  {
  
    padding: 12px 48px;
    border: solid 2px white;
    top: 50%;
    position: absolute;
    z-index: 1;
    opacity: 0;
    transition: opacity .35s ease;
}

/*BUTTON A*/

.button a{
      text-decoration: none;
      color: white;
}

 /* EFFECT ON HOVERING */

        .red:hover:after ,  .blue:hover:after ,  .green:hover:after{
            background:rgba(255, 0, 0, 0.5);
            content:"\A";
            width:100%;
            height:100%;
            
            position:absolute;
            top:0;
            left:0;
        }

        /*IMAGE ( ZOOM IN ) */

        .red:hover img , .blue:hover img ,  .green:hover img {
            -moz-transform: scale(1.2);
            -webkit-transform: scale(1.2);
            transform: scale(1.2);
        }
        /*BUTTON ( DISPLAY )*/

        .red:hover .button , .blue:hover .button  , .green:hover .button{
            opacity: 1;
        }

上面的代码与从github下载的示例镶木地板文件配合良好。

但是当我尝试使用较大的实木复合地板文件时,会出现以下错误。

<html>
        <head>
                <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
               
        </head>
<body>

   <div id="colors_container">
       <div id="colors_buttons">
           <a href="">All</a>
           <a id="button_red" href="#">Red</a>
           <a id="button_blue" href="#">Blue</a>
           <a id="button_green" href="#">Green</a>
       </div>
   
       <div id="colors">
           <!--Red-->
           <div class="red ">
                <div class="button" ><a href="#"> BUTTON </a></div>
            <img src="https://img.huffingtonpost.com/asset/598cc71515000084208b6139.jpg" >
            
           </div>
           
           <div class="red "> 
                <div class="button"><a href="#"> BUTTON </a></div>
                <img src="https://img-new.cgtrader.com/items/874819/95ae61fafb/large/mustang-red-car-3d-model-max-obj-fbx-c4d-mtl.jpg">
           </div>
           
           <!--Blue-->
           <div class="blue">
                <div class="button"><a href="#"> BUTTON </a></div>
                <img src="https://www.bluecarrental.gr/bluecarrental/cache/thumbs/Cars%20big/ford_fiesta_diesel_500x300_f500x300.png">
           </div>
           
           <!--Green-->
           <div class="green">
                <div class="button"><a href="#"> BUTTON </a></div>
                <img src="https://cdn.importantmedia.org/planetsave/uploads/2011/05/26100621/green-car.jpg">
           </div>
       </div>
   </div>
  </body>
</html>

我也尝试使用fastparquet和pyspark读取木地板文件。但是我收到类似的GZip错误。

我知道这是压缩或未压缩的镶木地板文件,与我下载的样本不同。

请提出任何代码或提供任何其他工具来将镶木地板文件转换为csv文件,将大有帮助。谢谢。

编辑:这些镶木地板文件似乎是二进制格式,与镶木地板中的常规字符串值相反。有什么方法可以读取二进制拼花?

1 个答案:

答案 0 :(得分:0)

这听起来很像您的Parquet文件已损坏。 PySpark,Arrow和fastparquet是Parquet格式的独立实现,因此很可能不是阅读器中的错误,而是损坏的文件。

没有更多信息(例如,该文件的编写方式),唯一的答案是您将无法读取它。

否则,pd.read_parquet(..).to_csv(..)足以将Parquet文件转换为CSV。