es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Carga de JSON en Dask (para gráficos en tiempo real)

Estoy intentando cargar un JSON desde una dirección http utilizando Dask y luego ponerlo en un dataframe para poder hacer algunos gráficos de experimentos con Dash. El objetivo es buscar los datos en tiempo real y mostrar gráficos en tiempo real de las máquinas (los datos de ejemplo se pueden encontrar aquí: http://aav.rz-berlin.mpg.de:17668/retrieval/data/getData.json?pv=FHIMP%3AHeDrop%3AForepressureDropletSrc)

Esto es lo que intenté:

import json
import dask.bag as db
mybag = db.read_text("http://aav.rz-berlin.mpg.de:17668/retrieval/data/getData.json?pv=FHIMP%3AHeDrop%3AForepressure_Droplet_Src").map(json.loads)
mybag.to_dataframe()

pero mybag.to_dataframe() congela mi código.

También intenté:

import dask.dataframe as dd
dd.read_json('url')

que devolvió “ValueError: Se esperaba un objeto o un valor”. Entonces, según el mensaje de error, no hay JSON en absoluto. ¿Se deriva el problema de que el JSON consiste en un campo meta y un campo de datos?

Pregunta adicional: ¿Tiene sentido mi sistema de esta manera si quiero proporcionar una aplicación web para monitorizar? Es la primera vez que trabajo con Dash y Dask. Básicamente, Dask hace el trabajo de un backend aquí si lo entendí bien y no es necesario tenerlo de pie por sí solo si tengo una API que me está enviando datos JSON.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema con mybag.to_dataframe() que congela el código es que Dask es perezoso y no se ejecuta hasta que sea necesario. En este caso, está esperando hasta que llame a una función compute (por ejemplo mybag.compute() o mybag.to_dataframe().compute()).

    En cuanto a la función dd.read_json, es posible que la estructura JSON no sea compatible con la función. Es posible que deba transformar los datos en una estructura diferente antes de cargarlos en un dataframe de Dask.

    En términos de su arquitectura del sistema, tiene sentido utilizar Dask como backend para manejar grandes volúmenes de datos y cómputo paralelo. Sin embargo, si tiene una API confiable que le envía datos JSON en tiempo real, es posible que no necesite necesariamente Dask. Realmente depende de la escala y complejidad de su proyecto.

Comments are closed.