Saltar al contenido

Cargue una gran cantidad de datos de BigQuery a python / pandas / dask

Solución:

En lugar de consultar, siempre puede exportar cosas al almacenamiento en la nube -> descargar localmente -> cargar en su marco de datos dask / pandas:

  1. Exportar + Descargar:

    bq --location=US extract --destination_format=CSV --print_header=false 'dataset.tablename' gs://mystoragebucket/data-*.csv &&  gsutil -m cp gs://mystoragebucket/data-*.csv /my/local/dir/ 
    
  2. Cargar en Dask:

    >>> import dask.dataframe as dd
    >>> df = dd.read_csv("/my/local/dir/*.csv")
    

Espero eso ayude.

En primer lugar, debe crear un perfil de su código para averiguar qué está tomando el tiempo. ¿Está esperando a que la gran consulta procese su consulta? ¿Es la descarga de datos?> ¿Cuál es su ancho de banda, qué fracción utiliza? ¿Está analizando esos datos en la memoria?

Como puede hacer que SQLAlchemy admita grandes consultas (https://github.com/mxmzdlv/pybigquery), puede intentar usar dask.dataframe.read_sql_table para dividir su consulta en particiones y cargarlas / procesarlas en paralelo. En caso de que big-query limite el ancho de banda en una sola conexión o en una sola máquina, puede obtener un rendimiento mucho mejor ejecutando esto en un clúster distribuido.

¡Experimentar!

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *