Итак, я хочу загрузить таблицу данных или фрейм данных из локальной базы данных MongoDB (из базы данных «test» и коллекции «dummy3»), настроенной с помощью docker -compose, с таблицей, структурированной как показано ниже:
city num of bike
0 A 1
1 B 2
2 C 3
3 D 5
4 E 2
ниже приведен код python, который я использовал для загрузки таблицы:
def download_db():
client = MongoClient("mongodb://root:root@mongodb:27017/admin")
db = client['test']
collection3 = db['dummy3']
df = pd.DataFrame(list(collection3.find()))
df.to_csv(r'./dags/df.csv', index = False, header=True)
Когда я использовал приведенный выше код в блокноте Jupiter, код работал хорошо; однако, когда я попытался запланировать приведенный выше код с помощью airflow и установки MongoDB с помощью docker -compose, результатом загрузки стал пустой csv. (как на самом деле загрузить таблицу данных вместо пустой таблицы данных)
docker-compose.yml
выглядит так:
version: '3.7'
services:
mongodb_container:
image: mongo:latest
container_name: mongodb
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=root
ports:
- "27017:27017"
volumes:
- mongodb_data_container:/data/db
volumes:
mongodb_data_container: