可以使用 pip
或者 conda
进行安装。
pip install notebook
conda install -c conda-forge notebook
.ipynb
为扩展名,它是一个包含代码、文本(支持 Markdown 格式)、图像和计算结果的文档。可以将其看作是一个交互式的实验环境,适合进行数据分析、机器学习模型开发、数据可视化等工作。jupyter notebook
这会在默认浏览器中打开 Jupyter Notebook 的主界面。
创建新的 Notebook:
在主界面中点击 “New” 按钮,选择所需的内核(如 Python 3),即可创建一个新的 Notebook。
编写和执行代码:
在代码单元格中编写 Python 代码,例如:
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 绘制图形
plt.plot(x, y)
plt.title('Sine Wave')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
按下 Shift + Enter
组合键执行代码单元格,代码的执行结果(如绘图)会显示在单元格下方。
.ipynb
文件分享给他人,他人可以在自己的 Jupyter Notebook 环境中打开并查看代码和结果。也可以将 Notebook 导出为多种格式,如 HTML、PDF 等。%
或 %%
开头。例如,%timeit
用于测量代码的执行时间,%%writefile
用于将单元格内容保存为文件。%timeit [i**2 for i in range(1000)]
ipywidgets
库创建交互式小部件,如滑块、下拉框等,增强 Notebook 的交互性。import ipywidgets as widgets
from IPython.display import display
def f(x):
print(x)
slider = widgets.IntSlider(min=0, max=10, step=1, value=5)
display(slider)
widgets.interact(f, x=slider);
可以使用 pip
进行安装:
pip install apache-airflow
安装完成后,需要进行初始化:
airflow db init
创建用户:
airflow users create \
--username admin \
--firstname Peter \
--lastname Parker \
--role Admin \
--email [email protected]
PythonOperator
用于执行 Python 函数,BashOperator
用于执行 Shell 脚本,SQLiteOperator
用于执行 SQL 查询等。SequentialExecutor
(单线程执行,用于测试和开发)、LocalExecutor
(多线程执行,在本地机器上运行)、CeleryExecutor
(分布式执行,可在集群上运行)等。以下是一个简单的 Airflow DAG 示例,包含两个任务,一个任务打印 “Hello”,另一个任务打印 “World”,且第二个任务依赖于第一个任务。
from datetime import datetime
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
# 定义 DAG 参数
dag = DAG(
'hello_world_dag',
description='A simple DAG to print Hello and World',
schedule_interval='@daily', # 每天执行一次
start_date=datetime(2025, 2, 20),
catchup=False
)
# 定义第一个任务
task1 = BashOperator(
task_id='print_hello',
bash_command='echo "Hello"',
dag=dag
)
# 定义第二个任务
task2 = BashOperator(
task_id='print_world',
bash_command='echo "World"',
dag=dag
)
# 设置任务依赖关系
task1 >> task2
将上述代码保存为一个 Python 文件(如 hello_world_dag.py
),并将其放置在 Airflow 的 dags
目录下。然后启动 Airflow 的 Web 服务器和调度器:
airflow webserver -p 8080
airflow scheduler
在浏览器中打开 http://localhost:8080
,登录 Airflow 界面,即可看到 hello_world_dag
,可以手动触发 DAG 运行或等待调度器按照设定的时间自动触发。
PythonOperator
将 Jupyter Notebook 中的 Python 函数作为任务添加到 Airflow DAG 中。例如:from datetime import datetime
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
# 定义一个 Python 函数,模拟在 Jupyter Notebook 中开发的代码
def my_data_processing_function():
print("Data processing is done!")
# 定义 DAG
dag = DAG(
'notebook_airflow_dag',
description='Integrate Jupyter Notebook code into Airflow',
schedule_interval='@weekly',
start_date=datetime(2025, 2, 20),
catchup=False
)
# 定义任务
task = PythonOperator(
task_id='run_data_processing',
python_callable=my_data_processing_function,
dag=dag
)
通过这种协同工作流,可以充分发挥 Jupyter Notebook 的交互式开发优势和 Airflow 的任务调度和管理能力,提高大数据处理和分析的效率和可靠性。