Код, показывающий ошибку возврата внешней функции – PythonPython

Программы на Python
Ответить
Anonymous
 Код, показывающий ошибку возврата внешней функции – Python

Сообщение Anonymous »

Код: Выделить всё

import snowflake.snowpark as snowpark
from snowflake.snowpark.functions import col, to_date, when, lit
from snowflake.snowpark.window import Window

def main(session: snowpark.Session):
# Load the table data into Snowpark dataframe
tableName = 'VEEVA_LOT_FINAL_PATIENT_COHORT'
dataframe = session.table(tableName)

# Print a sample of the dataframe to standard output (first 10 rows)
dataframe.show()

# Process the data for line of therapy
dataframe = process_line_of_therapy(dataframe)

def process_line_of_therapy(dataframe):
# Convert 'transaction_date' and 'FIRST_MF_DX_DATE' to date format
dataframe = dataframe.with_column('transaction_date', to_date(col('transaction_date')))
dataframe = dataframe.with_column('FIRST_MF_DX_DATE', to_date(col('FIRST_MF_DX_DATE')))

# Initialize new columns
dataframe = dataframe.with_column('Line', lit(None))
dataframe = dataframe.with_column('Line_Start_Date', lit(None))

# Sort dataframe by 'patient_id' and 'transaction_date'
dataframe = dataframe.order_by('patient_id', 'transaction_date')

# Case 1: When mfdx = 1, and transaction_date >= FIRST_MF_DX_DATE
dataframe = dataframe.with_column(
'Line_Start_Date',
when(
(col('MF_PATIENT_FLAG') == 1) & (col('transaction_date') >= col('FIRST_MF_DX_DATE')) & (col('asc_flag') == 0),
col('transaction_date')
).otherwise(col('Line_Start_Date'))
)

dataframe = dataframe.with_column(
'Line',
when(
(col('MF_PATIENT_FLAG') == 1) & (col('transaction_date') >= col('FIRST_MF_DX_DATE')) & (col('asc_flag') == 0),
lit(1)
).otherwise(col('Line'))
)

# Case 2: When mfdx = 0
dataframe = dataframe.with_column(
'Line_Start_Date',
when(
(col('NON_MF_PV_ET_FLAG') == 1) & (col('asc_flag') == 0),
col('transaction_date')
).otherwise(col('Line_Start_Date'))
)

dataframe = dataframe.with_column(
'Line',
when(
(col('NON_MF_PV_ET_FLAG') == 1) & (col('asc_flag') == 0),
lit(1)
).otherwise(col('Line'))

)

return dataframe

# Return the updated dataframe

Пожалуйста, проанализируйте код, я очень новичок в Python, есть ли какие-либо основные ошибки, я получаю возврат из внешней функции, но Chatgpt не может решить эту проблему
Попытка вернуть всю функцию, попытка возврата выше последнего объявления. Когда я попытался использовать правильный отступ, он показывает: «Обработчик не вернул DataFrame Snowpark. Верните DataFrame из обработчика или измените тип возвращаемого значения для рабочего листа Python».

Подробнее здесь: https://stackoverflow.com/questions/793 ... ror-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»