Mam duże pliki CSV i pliki Excel, w których je czytam i dynamicznie utworzę potrzebny skrypt tabeli tworzenia, w zależności od pól i typów, jakie ma. Następnie wstaw dane do utworzonej tabeli.Wprowadzanie dużej ilości danych do BigQuery za pośrednictwem biblioteki BigQuery-Pythona
Przeczytałem this i zrozumiałem, że powinienem wysłać je z jobs.insert()
zamiast tabledata.insertAll()
dla dużej ilości danych.
Tak to nazywam (działa dla mniejszych plików, nie dużych).
result = client.push_rows(datasetname,table_name,insertObject) # insertObject is a list of dictionaries
Kiedy używam biblioteki push_rows, powoduje to błąd w oknach.
[Errno 10054] An existing connection was forcibly closed by the remote host
i to w ubuntu.
[Errno 32] Broken pipe
Więc kiedy poszedłem za pośrednictwem kodu BigQuery-Python używa table_data.insertAll()
.
Jak mogę to zrobić w tej bibliotece? Wiem, że możemy przesyłać pliki z Google, ale potrzebuję metody bezpośredniego przesyłania.
Czy wystarczy dodać link do PO ?! –
oops, naprawianie rekursji! –
@FelipeHoffa gsutil mogę używać wewnątrz kodu Pythona? Wystąpiły problemy z typami kolumn, gdy bezpośrednio podajesz ścieżkę pliku CSV i przesyłasz. dzięki czemu mogę odczytać CSV i odpowiednio obsadzić pola. Czy nie istnieje sposób wstawienia obiektu (może to być lista słowników) do tabeli po ich przesłaniu? –