背景:
我在 Google 云 BigQuery 中有大量数据 (1500GB)。
我正在尝试使用这些数据作为训练数据集来构建机器学习模型。因此,我在 Jupyter 笔记本中编写了以下代码来获取数据集。
import pandas as pd
from google.cloud import bigquery
import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = './my_credential.json'
client = bigquery.Client()
sql = """
SELECT
Feature1,
Feature2,
Feature3,
target
FROM dataset
"""
sql_result = client.query(
sql
)
sql_result.to_dataframe()
问题:
代码执行 30 分钟后抛出内存错误。 我理解这是因为代码尝试将 1500GB 数据拉取到我的 Jupyter 笔记本,但我不知道如何修复。
如何使用 Jupyter Notebook 训练如此大量的数据?
最佳答案
您可能正在寻找一个外核计算引擎。由于您使用的是 Python,因此您应该查看 Dask和 Apache Spark与 PySpark .
Dask 是一个用 Python 实现的轻量级库,位于 NumPy 和 pandas 之上,以允许并行和/或核外计算。它通过 dask-ml 集成机器学习并公开与 NumPy、pandas 和 Scikit-Learn 的 API 非常相似的 API。
Spark 是一个用 Scala 实现的包罗万象的框架,在 JVM 上运行并公开 Python 的 API。它在大数据处理方面比较成熟,在业界得到广泛应用。 Spark还提供了机器学习库MLLib .
两者都可以在本地计算机或专用多节点集群上运行,以实现更快的计算。
关于python - 如何在Jupyter Notebook中建立大数据量的机器学习模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57490118/