Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex DataSphere
  • Начало работы
    • Все инструкции
      • Работа с секретами
      • Работа с шаблонами Yandex Data Processing
      • Работа с Docker-образами
      • Работа с датасетами
      • Работа с коннекторами S3
      • Работа с коннекторами Spark
      • Работа с моделями
      • Работа с файловыми хранилищами
    • Как перенести работу в новую версию
  • Справочник Terraform
  • Аудитные логи Audit Trails
  • Управление доступом
  • Правила тарификации
  • Публичные материалы
  • История изменений

В этой статье:

  • Создать и инициализировать датасет
  • Наполнить датасет файлами из хранилища проекта или подключенного объектного хранилища
  • Наполнить датасет из файла по ссылке
  • Наполнить датасет объектами файловых хранилищ
  • Активировать датасет
  • Посмотреть список датасетов, доступных в проекте
  • Поделиться датасетом
  • Деактивировать датасет
  • Удалить датасет
  1. Пошаговые инструкции
  2. Работа с ресурсами
  3. Работа с датасетами

Работа с датасетами

Статья создана
Yandex Cloud
Улучшена
Danila N.
Обновлена 7 марта 2025 г.
  • Создать и инициализировать датасет
    • Наполнить датасет файлами из хранилища проекта или подключенного объектного хранилища
    • Наполнить датасет из файла по ссылке
    • Наполнить датасет объектами файловых хранилищ
  • Активировать датасет
  • Посмотреть список датасетов, доступных в проекте
  • Поделиться датасетом
  • Деактивировать датасет
  • Удалить датасет

Для работы с большими объемами данных в DataSphere используйте датасеты. Основные операции с датасетами выполняются в коде ячеек с помощью служебных команд #pragma dataset.

Создать и инициализировать датасетСоздать и инициализировать датасет

Создать и инициализировать датасет можно из ячейки с кодом на Bash или Python, содержащей команду #pragma dataset init. При инициализации укажите уникальное в пределах проекта имя датасета и размер диска, на котором будет размещен датасет. Требования к имени датасета:

  • длина — от 2 до 63 символов;
  • может содержать строчные буквы латинского алфавита, цифры и дефисы;
  • первый символ — буква, последний — не дефис.

Примечание

Во время инициализации датасета будет выделен весь запрошенный объем дискового хранилища, однако часть этого объема будет занята файловой системой. Указывайте размер датасета в ГБ, округляя до целого в большую сторону.

Совет

Чем больше выделенный для датасета диск, тем выше скорость чтения данных.

Во время инициализации датасет однократно подключается к проекту с доступом для чтения и записи. Если код в ячейке инициализации датасета выполнен успешно, датасет сохраняется и повторно подключается с доступом только для чтения. Если во время инициализации произойдет ошибка, датасет будет отключен и удален.

После инициализации данные датасета изменить невозможно. Если данные нужно актуализировать, удалите датасет и создайте новый.

Наполнить датасет файлами из хранилища проекта или подключенного объектного хранилищаНаполнить датасет файлами из хранилища проекта или подключенного объектного хранилища

Этот способ также подойдет для создания датасета с данными из бакета Yandex Object Storage или другого объектного хранилища, подключенного к хранилищу проекта с помощью коннектора S3.

Bash

Чтобы создать датасет <имя_датасета>, инициализируйте его и скопируйте файлы каталога <имя_исходного_каталога>:

#!:bash
#pragma dataset init <имя_датасета> --size 1Gb

set -e
cp -r <имя_исходного_каталога> /home/jupyter/mnt/datasets/<имя_датасета>

Наполнить датасет из файла по ссылкеНаполнить датасет из файла по ссылке

Чтобы создать датасет <имя_датасета> из архива CIFAR-10, выполните код в ячейке:

Bash
Python 3
#!:bash
#pragma dataset init <имя_датасета> --size 1Gb

set -e
cd /home/jupyter/mnt/datasets/<имя_датасета>
wget https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
tar -xvf cifar-10-python.tar.gz
rm -rf cifar-10-python.tar.gz
#pragma dataset init <имя_датасета> --size 1Gb

from urllib.request import urlopen
import tarfile
from os import remove

file_name = 'cifar-10-python.tar.gz'
file_url = 'https://www.cs.toronto.edu/~kriz/' + file_name
dest_dir = '/home/jupyter/mnt/datasets/<имя_датасета>/'
dest_file = dest_dir + file_name

with urlopen(file_url) as i:
  with open(dest_file, 'w+b') as o:
    o.write(i.read())

tar = tarfile.open(dest_file)
tar.extractall(dest_dir)
tar.close()

remove(dest_file)

# This prevents serialization of temporary variables
del i, o, tar

Наполнить датасет объектами файловых хранилищНаполнить датасет объектами файловых хранилищ

Object Storage
Яндекс Диск
Google Drive

Если вы подключаетесь к бакету Object Storage с помощью коннектора S3, создайте датасет из объектов как из локальных файлов проекта.

#pragma dataset init <имя_датасета> --size 1Gb

import os
import boto3

S3_CREDS = {
    "aws_access_key_id": os.environ['<секрет_с_идентификатором_ключа_доступа>'],
    "aws_secret_access_key": os.environ['<секрет_с_секретным_ключом>']
}
bucket_name = "<имя_бакета>"

source_path = ''
target_path = '/home/jupyter/mnt/datasets/<имя_датасета>/'

s3r = boto3.resource(service_name='s3', endpoint_url='https://storage.yandexcloud.net', **S3_CREDS)
bucket = s3r.Bucket(bucket_name)

for obj in bucket.objects.filter(Prefix=source_path):
    if not os.path.relpath(obj.key, source_path).startswith('../'):
        os.makedirs(os.path.join(target_path, os.path.dirname(obj.key)), exist_ok=True)
        if obj.key[-1] != '/':
            bucket.download_file(obj.key, os.path.join(target_path, obj.key))

Где:

  • aws_access_key_id — идентификатор статического ключа доступа, сгенерированный для сервисного аккаунта проекта.
  • aws_secret_access_key — секретный ключ, сгенерированный для того же сервисного аккаунта.

Инициализируйте датасет в ячейке с кодом:

#pragma dataset init <имя_датасета> --size 8Gb

import requests
from urllib.parse import urlencode
from io import BytesIO
from zipfile import ZipFile

base_url = 'https://cloud-api.yandex.net/v1/disk/public/resources/download?'
public_key = '<ссылка_на_каталог_на_Яндекс_Диске>'

final_url = base_url + urlencode(dict(public_key=public_key))
response = requests.get(final_url)
download_url = response.json()['href']
response = requests.get(download_url)

dist_path = '/home/jupyter/mnt/datasets/<имя_датасета>/'
zipfile = ZipFile(BytesIO(response.content))
zipfile.extractall(path=dist_path)

Где <ссылка_на_каталог_на_Яндекс_Диске> — ссылка для доступа к каталогу на Яндекс Диске, содержимое которого нужно загрузить в DataSphere.

  1. Установите пакет gdown:

    %pip install gdown
    
  2. Инициализируйте датасет в ячейке с кодом:

    #pragma dataset init <имя_датасета> --size 1Gb
    
    import gdown
    
    gdrive_folder_id = '<идентификатор_папки_Google_Drive>'
    dst_path = '/home/jupyter/mnt/datasets/<имя_датасета>/'
    
    gdown.download_folder(id=gdrive_folder_id, output=dst_path, use_cookies=False)
    

    Где <идентификатор_папки_Google_Drive> — идентификатор папки Google Drive, который содержится в адресе после https://drive.google.com/drive/folders/. Например, в URL https://drive.google.com/drive/folders/exampleId идентификатор папки — exampleId.

Активировать датасетАктивировать датасет

Сразу после инициализации датасет становится активным в проекте и доступен по адресу /home/jupyter/mnt/datasets/<имя_датасета>. Одновременно в проекте может быть активировано до 3 датасетов. Во время работы вы можете активировать датасеты, когда они необходимы, и отключать их, если данные больше не нужны.

Чтобы активировать датасет:

  1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

  2. В блоке Ресурсы проекта нажмите Датасет.
  3. В строке с нужным датасетом нажмите значок и выберите Активировать.

Посмотреть список датасетов, доступных в проектеПосмотреть список датасетов, доступных в проекте

На странице проекта в блоке Ресурсы проекта выберите Датасет. Затем перейдите на вкладку Доступные.

Поделиться датасетомПоделиться датасетом

Примечание

Делиться ресурсами можно только в рамках одной организации между сообществами, созданными в одной зоне доступности.

  1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

  2. В блоке Ресурсы проекта нажмите Датасет.
  3. Выберите нужный датасет в списке.
  4. Перейдите на вкладку Доступ.
  5. Включите опцию видимости напротив названия сообщества, с которым нужно поделиться датасетом.

Чтобы датасет стал доступен для работы в другом проекте, необходимо добавить его на вкладке Доступные.

Деактивировать датасетДеактивировать датасет

  1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

  2. На странице проекта в блоке Ресурсы проекта нажмите Датасет.
  3. В строке с нужным датасетом нажмите значок и выберите Деактивировать.

Удалить датасетУдалить датасет

Вы можете удалить датасет, только если он:

  • не активирован в собственном проекте;
  • не используется в других проектах;
  • недоступен в сообществе.

Чтобы удалить датасет:

  1. На странице проекта в блоке Ресурсы проекта нажмите Датасет.
  2. В строке с нужным датасетом нажмите значок и выберите Удалить.

Важно

Фактически удаление ресурсов может занимать до 72 часов.

Была ли статья полезна?

Предыдущая
Работа с Docker-образами
Следующая
Работа с коннекторами S3
Проект Яндекса
© 2025 ООО «Яндекс.Облако»