Есть ли способ сохранить файл JSON из запроса API в таблицу в Snowflake с помощью UDF?Python

Программы на Python
Ответить
Anonymous
 Есть ли способ сохранить файл JSON из запроса API в таблицу в Snowflake с помощью UDF?

Сообщение Anonymous »

Я пытаюсь сохранить файл JSON, полученный по запросу API, в виде таблицы «Снежинка».
Я создал UDF и могу получить данные ответа из API я попытался сохранить эти данные с помощью session.write_pandas, но получаю сообщение об ошибке pyarrow.lib.ArrowInvalid: («невозможно смешивать список и значения, не входящие в список, ненулевые значения», «Ошибка преобразования для столбца fimFranchisee с типом объекта')
Вот мой пример кода:

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

CREATE OR REPLACE PROCEDURE fetch_api_data()
RETURNS STRING
LANGUAGE PYTHON
RUNTIME_VERSION = 3.8
PACKAGES = ('requests', 'pandas', 'snowflake-snowpark-python')
HANDLER = 'getData'
EXTERNAL_ACCESS_INTEGRATIONS = (access_integration)
SECRETS = ('api_key' = api_key)
AS
$$
import requests as rq
import pandas as pd
import snowflake.snowpark as snowpark
def getData (session: snowpark.Session):
apiurl = 'https://exmaple.com'
header = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Bearer bearer_token'
}
response = rq.post(apiurl, headers = header)
data = response.json()
df = pd.DataFrame(data)
session.write_pandas(df, table_name= 'RAW_SEGMENT', database='DEV_1_RAW', schema='SCHEMA!', auto_create_table=True, overwrite=True)
return data
$$;

CALL fetch_api_data();
Как уже говорилось, я могу видеть данные, используя возвращаемые данные, но я не нашел способа сохранить эти данные в таблицу. Я получаю упомянутую выше ошибку при попытке сохранить ее с помощью session.write_pandas.
Есть ли способ сохранить эти неструктурированные данные в таблице? Для меня достаточно, если все данные будут сохранены как тип данных объекта.

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

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

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

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

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

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