Mam dużą ilość danych którą muszę pobrać(kilka milionów wierszy) i nie chcę tych danych wrzucać do pamięci.
Doszedłem do etapu gdzie wrzucam te dane do pliku, jednak nie wiem jak ten plik pobrać, bądź od razu strumieniować dane
do csv. Używam do libek async: Quart i aioinflux. Moja wiedza o Pythonie jest bardzo mała. Co dotąd mi się udało zrobić:
import pandas as pd
from quart import Quart
from aioinflux import InfluxDBClient
app = Quart(__name__)
@app.route("/to_csv", methods=['GET'])
async def get_csv():
async with InfluxDBClient(db='test') as client:
query = "SELECT value ..."
resp = await client.query(query, chunked=True, chunk_size=10000)
async for row in resp:
df = pd.DataFrame.from_dict(row)
df.to_csv('file.csv', mode='a', header=False)
if __name__ == "__main__":
app.run()
Macie jakies wskazówki w którą strone iść bądź jak to sensownie dokończyć?