Как создать объект make_batch_reader библиотеки petastorm в DataBricks?

У меня данные сохранены в паркетном формате. Petastorm — это библиотека, которую я использую для получения пакетов данных для обучения.

Хотя я смог сделать это в своей локальной системе, тот же код не работает в Databricks.

Код, который я использовал в своей локальной системе

      # create a iterator object train_reader. num_epochs is the number of epochs for which we want to train our model

with make_batch_reader('file:///config/workspace/scaled.parquet', num_epochs=4,shuffle_row_groups=False) as train_reader:
  train_ds = make_petastorm_dataset(train_reader).unbatch().map(lambda x: (tf.convert_to_tensor(x))).batch(2)
  

  for ele in train_ds:
    tensor = tf.reshape(ele,(2,1,15))
    model.fit(tensor,tensor)

Код, который я использовал в Databricks

      with make_batch_reader('dbfs://output/scaled.parquet', num_epochs=4,shuffle_row_groups=False) as train_reader:
    train_ds = make_petastorm_dataset(train_reader).unbatch().map(lambda x: (tf.convert_to_tensor(x))).batch(2)
  

    for ele in train_ds:
        tensor = tf.reshape(ele,(2,1,15))
        model.fit(tensor,tensor)

Ошибка, которую я получаю в коде DataBricks:

TypeError: init() отсутствуют 2 обязательных позиционных аргумента: «экземпляр» и «токен»

Я проверил документацию, но не смог найти ни одного аргумента, который идет по имени экземпляра и токена. Однако в аналогичном методе make_reader в petastorm для Azure Databricks я вижу следующую строку кода:

      # create sas token for storage account access, use your own adls account info
remote_url = "abfs://container_name@storage_account_url"
account_name = "<<adls account name>>"
linked_service_name = '<<linked service name>>'
TokenLibrary = spark._jvm.com.microsoft.azure.synapse.tokenlibrary.TokenLibrary
sas_token = TokenLibrary.getConnectionString(linked_service_name)

with make_reader('{}/data_directory'.format(remote_url), storage_options = {'sas_token' : sas_token}) as reader:
    for row in reader:
        print(row)

Здесь я вижу, что в качестве входных данных передается некоторый «sas_token».

Пожалуйста, предложите, как мне решить эту ошибку?

Я пробовал менять пути файла паркета, но у меня это не сработало.

0 ответов

Другие вопросы по тегам