read_csv () не работает с объектом StreamingBody, где требуется python движок - PullRequest
0 голосов
/ 21 января 2020

Я столкнулся с проблемой при использовании pandas read_csv(). Данные считываются из s3 как объект StreamingBody и замечают, что они работают только при использовании обработчика механизма c. (согласно pandas [документация] [1], skipfooter работает только с python парсером движка)

Кто-нибудь сталкивался с подобной проблемой раньше? Или какой-нибудь совет, чтобы решить эту проблему? Спасибо

Вот как я перепродал эту проблему.

import boto3
import s3fs
import pandas as pd

s3 = boto3.client("s3")
response = s3.get_object(Bucket="df-raw-869771", Key="csv/customer-01.csv")

pd.read_csv(response["Body"])

     customer_id|store_id|first_name|last_name|email|address_id|activebool|dw_insert_date|dw_update_date|active
0     9|2|MARGARET|MOORE|MARGARET.MOORE@sakilacustom...                                                        
1     13|2|KAREN|JACKSON|KAREN.JACKSON@sakilacustome...                                                        
2     17|1|DONNA|THOMPSON|DONNA.THOMPSON@sakilacusto...                                                        
3     21|1|MICHELLE|CLARK|MICHELLE.CLARK@sakilacusto...                                                        
4     25|1|DEBORAH|WALKER|DEBORAH.WALKER@sakilacusto...                                                        
...                                                 ...                                                        
1188  587|1|SERGIO|STANFIELD|SERGIO.STANFIELD@sakila...                                                        
1189  591|1|KENT|ARSENAULT|KENT.ARSENAULT@sakilacust...                                                        
1190  595|1|TERRENCE|GUNDERSON|TERRENCE.GUNDERSON@sa...                                                        
1191  599|2|AUSTIN|CINTRON|AUSTIN.CINTRON@sakilacust...                                                        
1192  4|2|BARBARA|JONES|BARBARA@sakilacustomer.org|8...                                                        

[1193 rows x 1 columns]    

при передаче аргумента скипфута

import boto3
import s3fs
import pandas as pd

s3 = boto3.client("s3")
response = s3.get_object(Bucket="df-raw-869771", Key="csv/customer-01.csv")

pd.read_csv(response["Body"], skipfooter=1)

__main__:1: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support skipfooter; you can avoid this warning by specifying engine='python'.
    99  117  115  116  111  109  101  114   95  105  100  124  115.1  116.1  111.1  ...  114.28  103.11  124.112  53.6  55.4  124.113  65.51  99.26  116.33  105.31  118.13  101.35  124.114  49.70  51.21
0   45   49   49   45   50   48   49   57  124  124   49   10     53     55    124  ...      69      83       84   124    69       68     78     65      46      87      69      83       84     64    115
1   97  107  105  108   97   99  117  115  116  111  109  101    114     46    111  ...      76      68       73    78    69       46     80     69      82      75      73      78       83     64    115
2   97  107  105  108   97   99  117  115  116  111  109  101    114     46    111  ...      73      76       76    73    65       77     83     79      78      64     115      97      107    105    108
3   97   99  117  115  116  111  109  101  114   46  111  114    103    124     50  ...     114     103      124    50    55       48    124     65      99     116     105     118      101    124     49
4   51   45   49   49   45   50   48   49   57  124  124   49     10     50     54  ...     115      97      107   105   108       97     99    117     115     116     111     109      101    114     46
..  ..  ...  ...  ...  ...  ...  ...  ...  ...  ...  ...  ...    ...    ...    ...  ...     ...     ...      ...   ...   ...      ...    ...    ...     ...     ...     ...     ...      ...    ...    ...
84  99  116  105  118  101  124   49   51   45   49   49   45     50     48     49  ...      51      45       49    49    45       50     48     49      57     124     124      49       10     51     56
85  51  124   49  124   77   65   82   84   73   78  124   66     65     76     69  ...      51      53      124    50   124       82     73     67      75      89     124      83       72     69     76
86  66   89  124   82   73   67   75   89   46   83   72   69     76     66     89  ...      88      84       69    82   124       72     69     67      84      79      82      46       80     79     73
87  78   68   69   88   84   69   82   64  115   97  107  105    108     97     99  ...     103     124       53    52    53      124     65     99     116     105     118     101      124     49     51
88  45   49   49   45   50   48   49   57  124  124   49   10     53     52     51  ...     116     111      109   101   114       46    111    114     103     124      53      57       55    124     65

[89 rows x 1024 columns]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...