azure databricks notebook — (Python) как передать аргумент, который является списком кортежей

#python-3.x #azure-databricks

#python-3.x #azure-databricks

Вопрос:

Привет, я хочу передать [(‘file1’, ‘d’, 1), (‘file2’, ‘w’, 2), (‘file3’, ‘d’, 5)] в качестве аргумента в Azure databrics notebook, а затем я хочу проверить, был ли файл1 изменен за последние 1 день, а file2 — за последние 2 недели, а file3 — за последние 5 дней и т.д. и т.п. Для всех оставшихся кортежей. если все это верно, тогда верните True. когда я пытаюсь использовать dbutils.widgets.text(‘my_filelist’,»,») my_filelist = dbutils.widget.get(«my_filelist») print(my_filelist)
это выводит строку, которую я передал, но это не список кортежей, который я мог бы затем обработать, как составить этот список кортежей? например… list_of_tup = list(my_filelist) не помогает (общая цель — разработать универсальную утилиту проверки всех файлов данных перед выполнением ETL / ELT)

Ответ №1:

Вы можете сделать это аналогично тому, как это делается в этом примере —

 returned_table = dbutils.notebook.run("LOCATION_OF_CALLEE_NOTEBOOK", 60) display(sqlContext.read.parquet(returned_table))
  

Комментарии:

1. спасибо Бхарат. Я мог бы попробовать это. на данный момент я обнаружил, что выполнение list_of_tup = list(eval(my_filelist)) также служит моей цели.

2. коллега помог исправить это… передайте аргумент только в виде списка кортежей, т.Е. [(имя файла, частота, дни / недели / месяц], а затем с помощью eval и кортежей процесса list