У меня есть некоторый код (в основном, не мой исходный код), который я запускаю на своем локальном ПК в среде Anaconda Jupyter Notebook. Мне нужно увеличить объем обработки, поэтому я изучаю блоки данных Azure. Есть одна часть кода, которая выполняет цикл Python, но использует библиотеку R (stats), а затем передает данные через модель R (tbats). Таким образом, одна ячейка Jupyter Notebook работает с Python и R-кодом. Можно ли это сделать и в записных книжках Azure Databricks? Я нашел только документацию, которая позволяет менять языки от ячейки к ячейке.
В предыдущей ячейке у меня есть:
%r libarary(stats)
Таким образом, статистика библиотеки импортируется (вместе с другими библиотеками R). Однако когда я запускаю код ниже, я получаю
NameError: имя 'stats' не определено
Мне интересно, если Databricks хочет, чтобы вы указали ячейке язык, который вы используете (например,% r,% python и т. Д.).
Мой код Python:
for customerid, dataForCustomer in original.groupby(by=['customer_id']):
startYear = dataForCustomer.head(1).iloc[0].yr
startMonth = dataForCustomer.head(1).iloc[0].mnth
endYear = dataForCustomer.tail(1).iloc[0].yr
endMonth = dataForCustomer.tail(1).iloc[0].mnth
#Creating a time series object
customerTS = stats.ts(dataForCustomer.usage.astype(int),
start=base.c(startYear,startMonth),
end=base.c(endYear, endMonth),
frequency=12)
r.assign('customerTS', customerTS)
##Here comes the R code piece
try:
seasonal = r('''
fit<-tbats(customerTS, seasonal.periods = 12,
use.parallel = TRUE)
fit$seasonal
''')
except:
seasonal = 1
# APPEND DICTIONARY TO LIST (NOT DATA FRAME)
df_list.append({'customer_id': customerid, 'seasonal': seasonal})
print(f' {customerid} | {seasonal} ')
seasonal_output = pa.DataFrame(df_list)