您可以在这里访问完整的管道
法师在我的最后一篇文章中,我写了一篇使用文章 python 和 looker studio 仪表板用于可视化我的举重训练数据。在本文中,我将逐步引导您使用相同的数据集来完成 etl(提取、转换、加载)管道。
我们将使用它来建造管道 mage 安排和使用管道 python 在转换和加载数据的最后一步,我们导出转换后的数据 duckdb 数据库中。
要执行 mage,我们需要使用官方 docker 镜像:
docker pull mageai/mageai:latest
管道将如下所示:
提炼提取很简单,我们只需要阅读 csv 并用它创建一个文件 pandas 数据框,这样我们就可以下一步了。使用数据加载器块,我们已经有了一个可用的模板,只需要记住 read_csv( ) 函数中设置“函数”sep“参数可以正确加载数据。
from mage_ai.io.file import fileio import pandas as pd if 'data_loader' not in globals(): ? ? from mage_ai.data_preparation.decorators import data_loader if 'test' not in globals(): ? ? from mage_ai.data_preparation.decorators import test @data_loader def load_data_from_file(*args, **kwargs): ? ? filepath = 'default_repo/data_strong.csv' ? ? df = pd.read_csv(filepath, sep=';') ? ? return df @test def test_output(output, *args) -> none: ? ? assert output is not none, 'the output is undefined'`
在此步骤中,使用 transformer 有许多模板可供选择,我们将选择一个自定义的模板。
我们要做的转换基本上是exercise name列的映射,这样我们就可以识别哪个身体部位对应于特定的练习。
import pandas as pd if 'transformer' not in globals(): ? ? from mage_ai.data_preparation.decorators import transformer if 'test' not in globals(): ? ? from mage_ai.data_preparation.decorators import test body_part = {'squat (barbell)': 'pernas', ? ? 'bench press (barbell)': 'peitoral', ? ? 'deadlift (barbell)': 'costas', ? ? 'triceps pushdown (cable - straight bar)': 'bracos', ? ? 'bent over row (barbell)': 'costas', ? ? 'leg press': 'pernas', ? ? 'overhead press (barbell)': 'ombros', ? ? 'romanian deadlift (barbell)': 'costas', ? ? 'lat pulldown (machine)': 'costas', ? ? 'bench press (dumbbell)': 'peitoral', ? ? 'skullcrusher (dumbbell)': 'bracos', ? ? 'lying leg curl (machine)': 'pernas', ? ? 'hammer curl (dumbbell)': 'bracos', ? ? 'overhead press (dumbbell)': 'ombros', ? ? 'lateral raise (dumbbell)': 'ombros', ? ? 'chest press (machine)': 'peitoral', ? ? 'incline bench press (barbell)': 'peitoral', ? ? 'hip thrust (barbell)': 'pernas', ? ? 'agachamento pausado ': 'pernas', ? ? 'larsen press': 'peitoral', ? ? 'triceps dip': 'bracos', ? ? 'farmers march ': 'abdomen', ? ? 'lat pulldown (cable)': 'costas', ? ? 'face pull (cable)': 'ombros', ? ? 'stiff leg deadlift (barbell)': 'pernas', ? ? 'bulgarian split squat': 'pernas', ? ? 'front squat (barbell)': 'pernas', ? ? 'incline bench press (dumbbell)': 'peitoral', ? ? 'reverse fly (dumbbell)': 'ombros', ? ? 'push press': 'ombros', ? ? 'good morning (barbell)': 'costas', ? ? 'leg extension (machine)': 'pernas', ? ? 'standing calf raise (smith machine)': 'pernas', ? ? 'skullcrusher (barbell)': 'bracos', ? ? 'strict military press (barbell)': 'ombros', ? ? 'seated leg curl (machine)': 'pernas', ? ? 'bench press - close grip (barbell)': 'peitoral', ? ? 'hip adductor (machine)': 'pernas', ? ? 'deficit deadlift (barbell)': 'pernas', ? ? 'sumo deadlift (barbell)': 'costas', ? ? 'box squat (barbell)': 'pernas', ? ? 'seated row (cable)': 'costas', ? ? 'bicep curl (dumbbell)': 'bracos', ? ? 'spotto press': 'peitoral', ? ? 'incline chest fly (dumbbell)': 'peitoral', ? ? 'incline row (dumbbell)': 'costas'} @transformer def transform(data, *args, **kwargs): ? ? strong_data = data[['date', 'workout name', 'exercise name', 'weight', 'reps', 'workout duration']] ? ? strong_data['body part'] = strong_data['exercise name'].map(body_part) ? ? return strong_data @test def test_output(output, *args) -> none: ? ? assert output is not none, 'the output is undefined'
mage 一个有趣的功能是,我们可以使用添加图表来可视化我们 tranformer 对于块内的变化,可以使用列选择 body 部分生成饼图。
加载现在是时候加载数据了 duckdb 了。在 docker 在镜像中,我们已经有了 duckdb,因此,我们只需要在管道中包含另一个块。让我们包括数据导出器块和 sql 这样我们就可以创建表并插入数据。
CREATE OR REPLACE TABLE powerlifting ( _date DATE, workout_name STRING, exercise_name STRING, weight STRING, reps STRING, workout_duration STRING, body_part STRING ); INSERT INTO powerlifting SELECT * FROM {{ df_1 }};
mage 它是一种功能强大的管道布置工具,为开发提供了一套完整的工具 etl 特定任务的模板。在本文中,我们开始使用如何 mage 简要解释了数据管道的构建。在今后的文章中,我们将进一步探索这个惊人的框架。
以上是Magic and Muscle:使用 Magic 和 DuckDB 进行 ETL,包括我的举重训练数据的详细内容,请关注其他相关文章!
图片复制后不全,原因何在?速查解决方案!(这个标题简洁明了,既提出了问题,又暗示了解决方案,符合有说服力的语气要求。)
Magic and Muscle:使用 Magic 和 DuckDB 进行 ETL,它包括我的举重训练数据-Python教程
揭秘IP 138:探寻背后的网络真相!
CMD速查:高效检测3389端口状态!
夸克升级“超级搜索框” ?以人工智能搜索为中心的一站式AI服务-人工智能
数据恢复攻略:一键还原,安全无忧!
Win11家庭版远程桌面连接,轻松上手教程
夸克升级“超级搜索框” ?以人工智能搜索为中心的一站式AI服务-人工智能
HBM4 内存标准即将定稿:堆栈通道数量比较 HBM3 翻倍,初步同意最高 6.4 Gbps 速度-IT行业
手游百战天下天赋点怎么加? 手游百战天下天赋加点攻略-手游攻略
和平精英无法连接到服务器-手机游戏策略
《燕云十六声》财神归位任务完成策略-手机游戏策略
如何取消下一章的自动订阅-手机软件
开始阅读如何关闭下一章的自动订阅-手机软件
如何关闭评论提醒-手机软件
壳找房子怎么评价经纪人-手机软件
奶酪词怎么换课本-手机软件
奶酪单词如何退出小组-手机软件
奶酪单词如何分享单词卡-手机软件